From 8992ee628079d9074672cc1c0d5cfea0398402fc Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Sun, 2 Dec 2018 23:41:56 +0300 Subject: [PATCH] Add tests for non-compatible ABI changes --- .../jvm/abi/AbstractCompareJvmAbiTest.kt | 8 ++++-- .../jvm/abi/CompareJvmAbiTestGenerated.java | 25 +++++++++++++++++++ .../testData/compare/classFlags/base/Class.kt | 3 +++ .../compare/classFlags/differentAbi/Class.kt | 3 +++ .../testData/compare/constant/base/const.kt | 3 +++ .../compare/constant/differentAbi/const.kt | 3 +++ .../compare/parameterName/base/function.kt | 3 +++ .../parameterName/differentAbi/function.kt | 3 +++ .../compare/returnType/base/function.kt | 3 +++ .../returnType/differentAbi/function.kt | 3 +++ .../compare/superClass/base/classes.kt | 4 +++ .../superClass/differentAbi/classes.kt | 4 +++ 12 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 plugins/jvm-abi-gen/testData/compare/classFlags/base/Class.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/classFlags/differentAbi/Class.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/constant/base/const.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/constant/differentAbi/const.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/parameterName/base/function.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/parameterName/differentAbi/function.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/returnType/base/function.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/returnType/differentAbi/function.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/superClass/base/classes.kt create mode 100644 plugins/jvm-abi-gen/testData/compare/superClass/differentAbi/classes.kt diff --git a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/AbstractCompareJvmAbiTest.kt b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/AbstractCompareJvmAbiTest.kt index d46f82e51e6..df495cd72d3 100644 --- a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/AbstractCompareJvmAbiTest.kt +++ b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/AbstractCompareJvmAbiTest.kt @@ -13,13 +13,17 @@ abstract class AbstractCompareJvmAbiTest : BaseJvmAbiTest() { fun doTest(path: String) { val testDir = File(path) val base = Compilation(testDir, "base").also { make(it) } + val sameAbiDir = testDir.resolve("sameAbi") + val differentAbiDir = testDir.resolve("differentAbi") - if (testDir.resolve("sameAbi").exists()) { + assert(sameAbiDir.exists() || differentAbiDir.exists()) { "Nothing to compare" } + + if (sameAbiDir.exists()) { val sameAbi = Compilation(testDir, "sameAbi").also { make(it) } assertEqualDirectories(sameAbi.abiDir, base.abiDir, forgiveExtraFiles = false) } - if (testDir.resolve("differentAbi").exists()) { + if (differentAbiDir.exists()) { val differentAbi = Compilation(testDir, "differentAbi").also { make(it) } assertFails("$base and $differentAbi abi are equal") { assertEqualDirectories(differentAbi.abiDir, base.abiDir, forgiveExtraFiles = false) diff --git a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java index f7e76ee2980..aca8c3b796e 100644 --- a/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java +++ b/plugins/jvm-abi-gen/test/org/jetbrains/kotlin/jvm/abi/CompareJvmAbiTestGenerated.java @@ -34,6 +34,11 @@ public class CompareJvmAbiTestGenerated extends AbstractCompareJvmAbiTest { runTest("plugins/jvm-abi-gen/testData/compare/anonymousClass/"); } + @TestMetadata("classFlags") + public void testClassFlags() throws Exception { + runTest("plugins/jvm-abi-gen/testData/compare/classFlags/"); + } + @TestMetadata("classPrivateMemebers") public void testClassPrivateMemebers() throws Exception { runTest("plugins/jvm-abi-gen/testData/compare/classPrivateMemebers/"); @@ -44,6 +49,11 @@ public class CompareJvmAbiTestGenerated extends AbstractCompareJvmAbiTest { runTest("plugins/jvm-abi-gen/testData/compare/clinit/"); } + @TestMetadata("constant") + public void testConstant() throws Exception { + runTest("plugins/jvm-abi-gen/testData/compare/constant/"); + } + @TestMetadata("functionBody") public void testFunctionBody() throws Exception { runTest("plugins/jvm-abi-gen/testData/compare/functionBody/"); @@ -64,6 +74,11 @@ public class CompareJvmAbiTestGenerated extends AbstractCompareJvmAbiTest { runTest("plugins/jvm-abi-gen/testData/compare/localClass/"); } + @TestMetadata("parameterName") + public void testParameterName() throws Exception { + runTest("plugins/jvm-abi-gen/testData/compare/parameterName/"); + } + @TestMetadata("privateClass") public void testPrivateClass() throws Exception { runTest("plugins/jvm-abi-gen/testData/compare/privateClass/"); @@ -79,6 +94,16 @@ public class CompareJvmAbiTestGenerated extends AbstractCompareJvmAbiTest { runTest("plugins/jvm-abi-gen/testData/compare/propertyReference/"); } + @TestMetadata("returnType") + public void testReturnType() throws Exception { + runTest("plugins/jvm-abi-gen/testData/compare/returnType/"); + } + + @TestMetadata("superClass") + public void testSuperClass() throws Exception { + runTest("plugins/jvm-abi-gen/testData/compare/superClass/"); + } + @TestMetadata("topLevelPrivateMembers") public void testTopLevelPrivateMembers() throws Exception { runTest("plugins/jvm-abi-gen/testData/compare/topLevelPrivateMembers/"); diff --git a/plugins/jvm-abi-gen/testData/compare/classFlags/base/Class.kt b/plugins/jvm-abi-gen/testData/compare/classFlags/base/Class.kt new file mode 100644 index 00000000000..6671676d981 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/classFlags/base/Class.kt @@ -0,0 +1,3 @@ +package test + +class Class \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/classFlags/differentAbi/Class.kt b/plugins/jvm-abi-gen/testData/compare/classFlags/differentAbi/Class.kt new file mode 100644 index 00000000000..bf877a0f6a5 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/classFlags/differentAbi/Class.kt @@ -0,0 +1,3 @@ +package test + +open class Class \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/constant/base/const.kt b/plugins/jvm-abi-gen/testData/compare/constant/base/const.kt new file mode 100644 index 00000000000..de62917855d --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/constant/base/const.kt @@ -0,0 +1,3 @@ +package test + +const val x = 0 \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/constant/differentAbi/const.kt b/plugins/jvm-abi-gen/testData/compare/constant/differentAbi/const.kt new file mode 100644 index 00000000000..56faca17769 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/constant/differentAbi/const.kt @@ -0,0 +1,3 @@ +package test + +const val x = 1 \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/parameterName/base/function.kt b/plugins/jvm-abi-gen/testData/compare/parameterName/base/function.kt new file mode 100644 index 00000000000..2d757154620 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/parameterName/base/function.kt @@ -0,0 +1,3 @@ +package test + +fun id(x: Int): Int = x \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/parameterName/differentAbi/function.kt b/plugins/jvm-abi-gen/testData/compare/parameterName/differentAbi/function.kt new file mode 100644 index 00000000000..f83fa593cc6 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/parameterName/differentAbi/function.kt @@ -0,0 +1,3 @@ +package test + +fun id(y: Int): Int = y \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/returnType/base/function.kt b/plugins/jvm-abi-gen/testData/compare/returnType/base/function.kt new file mode 100644 index 00000000000..78c05ecf35d --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/returnType/base/function.kt @@ -0,0 +1,3 @@ +package test + +fun foo() = 0 \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/returnType/differentAbi/function.kt b/plugins/jvm-abi-gen/testData/compare/returnType/differentAbi/function.kt new file mode 100644 index 00000000000..df46051863d --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/returnType/differentAbi/function.kt @@ -0,0 +1,3 @@ +package test + +fun foo() = "0" \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/superClass/base/classes.kt b/plugins/jvm-abi-gen/testData/compare/superClass/base/classes.kt new file mode 100644 index 00000000000..70c2dd49327 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/superClass/base/classes.kt @@ -0,0 +1,4 @@ +package test + +open class A +class B : A() \ No newline at end of file diff --git a/plugins/jvm-abi-gen/testData/compare/superClass/differentAbi/classes.kt b/plugins/jvm-abi-gen/testData/compare/superClass/differentAbi/classes.kt new file mode 100644 index 00000000000..9c2f6abc1f1 --- /dev/null +++ b/plugins/jvm-abi-gen/testData/compare/superClass/differentAbi/classes.kt @@ -0,0 +1,4 @@ +package test + +open class A +class B \ No newline at end of file