From 9c1c71205760788939081a6115b4fcdc2642f33f Mon Sep 17 00:00:00 2001 From: Dmitriy Dolovov Date: Tue, 7 Jun 2022 00:06:03 +0300 Subject: [PATCH] [IR][tests] Add tests for removal-of-overridden open callable case --- .../testData/klibABI/removeOpenFunction/lib1/l1.kt | 7 +++++++ .../testData/klibABI/removeOpenFunction/lib1/l1.kt.1 | 2 ++ .../klibABI/removeOpenFunction/lib1/module.info | 6 ++++++ .../testData/klibABI/removeOpenFunction/lib2/l2.kt | 7 +++++++ .../klibABI/removeOpenFunction/lib2/module.info | 2 ++ .../testData/klibABI/removeOpenFunction/main/m.kt | 3 +++ .../klibABI/removeOpenFunction/main/module.info | 2 ++ .../testData/klibABI/removeOpenFunction/project.info | 7 +++++++ .../testData/klibABI/removeOpenProperty/lib1/l1.kt | 7 +++++++ .../testData/klibABI/removeOpenProperty/lib1/l1.kt.1 | 2 ++ .../klibABI/removeOpenProperty/lib1/module.info | 6 ++++++ .../testData/klibABI/removeOpenProperty/lib2/l2.kt | 7 +++++++ .../klibABI/removeOpenProperty/lib2/module.info | 2 ++ .../testData/klibABI/removeOpenProperty/main/m.kt | 3 +++ .../klibABI/removeOpenProperty/main/module.info | 2 ++ .../testData/klibABI/removeOpenProperty/project.info | 7 +++++++ .../kotlin/js/test/JsKLibABITestCaseGenerated.java | 10 ++++++++++ .../konan/blackboxtest/KlibABITestGenerated.java | 12 ++++++++++++ 18 files changed, 94 insertions(+) create mode 100644 compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt create mode 100644 compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt.1 create mode 100644 compiler/testData/klibABI/removeOpenFunction/lib1/module.info create mode 100644 compiler/testData/klibABI/removeOpenFunction/lib2/l2.kt create mode 100644 compiler/testData/klibABI/removeOpenFunction/lib2/module.info create mode 100644 compiler/testData/klibABI/removeOpenFunction/main/m.kt create mode 100644 compiler/testData/klibABI/removeOpenFunction/main/module.info create mode 100644 compiler/testData/klibABI/removeOpenFunction/project.info create mode 100644 compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt create mode 100644 compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt.1 create mode 100644 compiler/testData/klibABI/removeOpenProperty/lib1/module.info create mode 100644 compiler/testData/klibABI/removeOpenProperty/lib2/l2.kt create mode 100644 compiler/testData/klibABI/removeOpenProperty/lib2/module.info create mode 100644 compiler/testData/klibABI/removeOpenProperty/main/m.kt create mode 100644 compiler/testData/klibABI/removeOpenProperty/main/module.info create mode 100644 compiler/testData/klibABI/removeOpenProperty/project.info diff --git a/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt b/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt new file mode 100644 index 00000000000..8eba45756c3 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt @@ -0,0 +1,7 @@ +open class C { + open fun foo(): String = "FAIL1" +} + +interface I { + fun foo(): String = "FAIL2" +} diff --git a/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt.1 b/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt.1 new file mode 100644 index 00000000000..f292e039d67 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/lib1/l1.kt.1 @@ -0,0 +1,2 @@ +open class C +interface I diff --git a/compiler/testData/klibABI/removeOpenFunction/lib1/module.info b/compiler/testData/klibABI/removeOpenFunction/lib1/module.info new file mode 100644 index 00000000000..99edefccd79 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/lib1/module.info @@ -0,0 +1,6 @@ +STEP 0: + dependencies: stdlib +STEP 1: + dependencies: stdlib + modifications: + U : l1.kt.1 -> l1.kt diff --git a/compiler/testData/klibABI/removeOpenFunction/lib2/l2.kt b/compiler/testData/klibABI/removeOpenFunction/lib2/l2.kt new file mode 100644 index 00000000000..1a12ecf83ed --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/lib2/l2.kt @@ -0,0 +1,7 @@ +class C2 : C() { + override fun foo(): String = "O" // does not call super +} + +class I2 : I { + override fun foo(): String = "K" // does not call super +} diff --git a/compiler/testData/klibABI/removeOpenFunction/lib2/module.info b/compiler/testData/klibABI/removeOpenFunction/lib2/module.info new file mode 100644 index 00000000000..391aab979a6 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/lib2/module.info @@ -0,0 +1,2 @@ +STEP 0: + dependencies: stdlib, lib1 \ No newline at end of file diff --git a/compiler/testData/klibABI/removeOpenFunction/main/m.kt b/compiler/testData/klibABI/removeOpenFunction/main/m.kt new file mode 100644 index 00000000000..b26094fba69 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/main/m.kt @@ -0,0 +1,3 @@ +fun box(): String { + return C2().foo() + I2().foo() +} diff --git a/compiler/testData/klibABI/removeOpenFunction/main/module.info b/compiler/testData/klibABI/removeOpenFunction/main/module.info new file mode 100644 index 00000000000..62f7f4fab07 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/main/module.info @@ -0,0 +1,2 @@ +STEP 0: + dependencies: stdlib, lib1, lib2 \ No newline at end of file diff --git a/compiler/testData/klibABI/removeOpenFunction/project.info b/compiler/testData/klibABI/removeOpenFunction/project.info new file mode 100644 index 00000000000..2147306d715 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenFunction/project.info @@ -0,0 +1,7 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + +STEP 1: + libs: lib1 \ No newline at end of file diff --git a/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt b/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt new file mode 100644 index 00000000000..18576fefd70 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt @@ -0,0 +1,7 @@ +open class C { + open val foo: String get() = "FAIL1" +} + +interface I { + val foo: String get() = "FAIL2" +} diff --git a/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt.1 b/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt.1 new file mode 100644 index 00000000000..f292e039d67 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/lib1/l1.kt.1 @@ -0,0 +1,2 @@ +open class C +interface I diff --git a/compiler/testData/klibABI/removeOpenProperty/lib1/module.info b/compiler/testData/klibABI/removeOpenProperty/lib1/module.info new file mode 100644 index 00000000000..99edefccd79 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/lib1/module.info @@ -0,0 +1,6 @@ +STEP 0: + dependencies: stdlib +STEP 1: + dependencies: stdlib + modifications: + U : l1.kt.1 -> l1.kt diff --git a/compiler/testData/klibABI/removeOpenProperty/lib2/l2.kt b/compiler/testData/klibABI/removeOpenProperty/lib2/l2.kt new file mode 100644 index 00000000000..11b243fc8dd --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/lib2/l2.kt @@ -0,0 +1,7 @@ +class C2 : C() { + override val foo: String get() = "O" // does not call super +} + +class I2 : I { + override val foo: String get() = "K" // does not call super +} diff --git a/compiler/testData/klibABI/removeOpenProperty/lib2/module.info b/compiler/testData/klibABI/removeOpenProperty/lib2/module.info new file mode 100644 index 00000000000..391aab979a6 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/lib2/module.info @@ -0,0 +1,2 @@ +STEP 0: + dependencies: stdlib, lib1 \ No newline at end of file diff --git a/compiler/testData/klibABI/removeOpenProperty/main/m.kt b/compiler/testData/klibABI/removeOpenProperty/main/m.kt new file mode 100644 index 00000000000..a45c1e03295 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/main/m.kt @@ -0,0 +1,3 @@ +fun box(): String { + return C2().foo + I2().foo +} diff --git a/compiler/testData/klibABI/removeOpenProperty/main/module.info b/compiler/testData/klibABI/removeOpenProperty/main/module.info new file mode 100644 index 00000000000..62f7f4fab07 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/main/module.info @@ -0,0 +1,2 @@ +STEP 0: + dependencies: stdlib, lib1, lib2 \ No newline at end of file diff --git a/compiler/testData/klibABI/removeOpenProperty/project.info b/compiler/testData/klibABI/removeOpenProperty/project.info new file mode 100644 index 00000000000..2147306d715 --- /dev/null +++ b/compiler/testData/klibABI/removeOpenProperty/project.info @@ -0,0 +1,7 @@ +MODULES: lib1, lib2, main + +STEP 0: + libs: lib1, lib2, main + +STEP 1: + libs: lib1 \ No newline at end of file diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsKLibABITestCaseGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsKLibABITestCaseGenerated.java index a4af0c8fc37..e4f2d4575fb 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsKLibABITestCaseGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/JsKLibABITestCaseGenerated.java @@ -75,6 +75,16 @@ public class JsKLibABITestCaseGenerated extends AbstractJsKLibABITestCase { runTest("compiler/testData/klibABI/removeFunction/"); } + @TestMetadata("removeOpenFunction") + public void testRemoveOpenFunction() throws Exception { + runTest("compiler/testData/klibABI/removeOpenFunction/"); + } + + @TestMetadata("removeOpenProperty") + public void testRemoveOpenProperty() throws Exception { + runTest("compiler/testData/klibABI/removeOpenProperty/"); + } + @TestMetadata("removeProperty") public void testRemoveProperty() throws Exception { runTest("compiler/testData/klibABI/removeProperty/"); diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/KlibABITestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/KlibABITestGenerated.java index b9bb0bb9dc3..af21365c0b5 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/KlibABITestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/blackboxtest/KlibABITestGenerated.java @@ -78,6 +78,18 @@ public class KlibABITestGenerated extends AbstractNativeKlibABITest { runTest("compiler/testData/klibABI/removeFunction/"); } + @Test + @TestMetadata("removeOpenFunction") + public void testRemoveOpenFunction() throws Exception { + runTest("compiler/testData/klibABI/removeOpenFunction/"); + } + + @Test + @TestMetadata("removeOpenProperty") + public void testRemoveOpenProperty() throws Exception { + runTest("compiler/testData/klibABI/removeOpenProperty/"); + } + @Test @TestMetadata("removeProperty") public void testRemoveProperty() throws Exception {