Make jvmSignature optional in WriteSignatureTest
This commit is contained in:
@@ -67,7 +67,7 @@ public abstract class AbstractWriteSignatureTest : TestCaseWithTmpdir() {
|
|||||||
expectations.check()
|
expectations.check()
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SignatureExpectation(val header: String, val name: String, expectedJvmSignature: String, expectedGenericSignature: String) {
|
private class SignatureExpectation(val header: String, val name: String, val expectedJvmSignature: String?, expectedGenericSignature: String) {
|
||||||
private var checked = false
|
private var checked = false
|
||||||
private val expectedSignature = formatSignature(header, expectedJvmSignature, expectedGenericSignature)
|
private val expectedSignature = formatSignature(header, expectedJvmSignature, expectedGenericSignature)
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ public abstract class AbstractWriteSignatureTest : TestCaseWithTmpdir() {
|
|||||||
fun check(name: String, actualJvmSignature: String, actualGenericSignature: String) {
|
fun check(name: String, actualJvmSignature: String, actualGenericSignature: String) {
|
||||||
if (this.name == name) {
|
if (this.name == name) {
|
||||||
checked = true
|
checked = true
|
||||||
val actualSignature = formatSignature(header, actualJvmSignature, actualGenericSignature)
|
val actualSignature = formatSignature(header, expectedJvmSignature?.let { actualJvmSignature }, actualGenericSignature)
|
||||||
Assert.assertEquals(expectedSignature, actualSignature)
|
Assert.assertEquals(expectedSignature, actualSignature)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -167,15 +167,15 @@ public abstract class AbstractWriteSignatureTest : TestCaseWithTmpdir() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addClassExpectation(name: String, jvmSignature: String, genericSignature: String) {
|
fun addClassExpectation(name: String, jvmSignature: String?, genericSignature: String) {
|
||||||
classExpectations.add(SignatureExpectation("class: $name", name, jvmSignature, genericSignature))
|
classExpectations.add(SignatureExpectation("class: $name", name, jvmSignature, genericSignature))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addFieldExpectation(className: String, memberName: String, jvmSignature: String, genericSignature: String) {
|
fun addFieldExpectation(className: String, memberName: String, jvmSignature: String?, genericSignature: String) {
|
||||||
fieldExpectations.add(SignatureExpectation("field: $className::$memberName", memberName, jvmSignature, genericSignature))
|
fieldExpectations.add(SignatureExpectation("field: $className::$memberName", memberName, jvmSignature, genericSignature))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addMethodExpectation(className: String, memberName: String, jvmSignature: String, genericSignature: String) {
|
fun addMethodExpectation(className: String, memberName: String, jvmSignature: String?, genericSignature: String) {
|
||||||
methodExpectations.add(SignatureExpectation("method: $className::$memberName", memberName, jvmSignature, genericSignature))
|
methodExpectations.add(SignatureExpectation("method: $className::$memberName", memberName, jvmSignature, genericSignature))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -199,10 +199,11 @@ public abstract class AbstractWriteSignatureTest : TestCaseWithTmpdir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val jvmSignatureMatch = jvmSignatureRegex.matchExact(lines[lineNo+1])
|
val jvmSignatureMatch = jvmSignatureRegex.matchExact(lines[lineNo+1])
|
||||||
val genericSignatureMatch = genericSignatureRegex.matchExact(lines[lineNo+2])
|
val genericSignatureMatch = genericSignatureRegex.matchExact(lines[lineNo+1])
|
||||||
|
?: genericSignatureRegex.matchExact(lines[lineNo+2])
|
||||||
|
|
||||||
if (jvmSignatureMatch != null && genericSignatureMatch != null) {
|
if (genericSignatureMatch != null) {
|
||||||
val jvmSignature = jvmSignatureMatch.group(1)
|
val jvmSignature = jvmSignatureMatch?.group(1)
|
||||||
val genericSignature = genericSignatureMatch.group(1)
|
val genericSignature = genericSignatureMatch.group(1)
|
||||||
|
|
||||||
val classSuite = expectations.getOrCreateClassSuite(className)
|
val classSuite = expectations.getOrCreateClassSuite(className)
|
||||||
@@ -230,10 +231,13 @@ public abstract class AbstractWriteSignatureTest : TestCaseWithTmpdir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun formatSignature(header: String, jvmSignature: String, genericSignature: String): String =
|
fun formatSignature(header: String, jvmSignature: String?, genericSignature: String): String {
|
||||||
"""// $header
|
return listOf(
|
||||||
// jvm signature: $jvmSignature
|
"$header",
|
||||||
// generic signature: $genericSignature"""
|
jvmSignature?.let { "jvm signature: $it" },
|
||||||
|
"generic signature: $genericSignature"
|
||||||
|
).filterNotNull().joinToString("\n") { "// $it" }
|
||||||
|
}
|
||||||
|
|
||||||
val expectationRegex = Regex("^// (class|method|field): *([^:]+)(::(.+))? *(//.*)?")
|
val expectationRegex = Regex("^// (class|method|field): *([^:]+)(::(.+))? *(//.*)?")
|
||||||
val jvmSignatureRegex = Regex("^// jvm signature: *(.+) *(//.*)?")
|
val jvmSignatureRegex = Regex("^// jvm signature: *(.+) *(//.*)?")
|
||||||
|
|||||||
Reference in New Issue
Block a user