From 8c2f5c767f1fa6d6599b8c3e186d49f8e26153e1 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 2 Jan 2024 13:15:44 +0100 Subject: [PATCH] K1/K2: add BB test for (add/remove)(First/Last) calls on mutable list Related to KT-64640 --- ...BoxModernJdkCodegenBasedTestGenerated.java | 16 +++++++++++++++ ...BoxModernJdkCodegenBasedTestGenerated.java | 16 +++++++++++++++ ...BlackBoxModernJdkCodegenTestGenerated.java | 16 +++++++++++++++ ...BlackBoxModernJdkCodegenTestGenerated.java | 16 +++++++++++++++ .../testsWithJava21/addRemoveOnMutableList.kt | 20 +++++++++++++++++++ .../JvmAbiConsistencyTestRestGenerated.java | 16 +++++++++++++++ ...BlackBoxModernJdkCodegenTestGenerated.java | 10 ++++++++++ ...BlackBoxModernJdkCodegenTestGenerated.java | 16 +++++++++++++++ .../runners/AbstractJvmAbiConsistencyTest.kt | 7 +++++++ .../AbstractJvmBlackBoxCodegenTestBase.kt | 4 ++++ 10 files changed, 137 insertions(+) create mode 100644 compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxModernJdkCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxModernJdkCodegenBasedTestGenerated.java index 64a352ce114..514a9a263e5 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxModernJdkCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxModernJdkCodegenBasedTestGenerated.java @@ -802,4 +802,20 @@ public class LLFirBlackBoxModernJdkCodegenBasedTestGenerated extends AbstractLLF } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + } } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxModernJdkCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxModernJdkCodegenBasedTestGenerated.java index 9e2e9a24258..aa1abef3208 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxModernJdkCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxModernJdkCodegenBasedTestGenerated.java @@ -802,4 +802,20 @@ public class LLFirReversedBlackBoxModernJdkCodegenBasedTestGenerated extends Abs } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + } } diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxModernJdkCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxModernJdkCodegenTestGenerated.java index 6904d15d43e..dab7ce03952 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxModernJdkCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxModernJdkCodegenTestGenerated.java @@ -803,4 +803,20 @@ public class FirLightTreeBlackBoxModernJdkCodegenTestGenerated extends AbstractF } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + } } diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxModernJdkCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxModernJdkCodegenTestGenerated.java index 9ffc6fa5cc6..cbebba05a54 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxModernJdkCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxModernJdkCodegenTestGenerated.java @@ -803,4 +803,20 @@ public class FirPsiBlackBoxModernJdkCodegenTestGenerated extends AbstractFirPsiB } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + } } diff --git a/compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt b/compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt new file mode 100644 index 00000000000..e18aa2e8534 --- /dev/null +++ b/compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt @@ -0,0 +1,20 @@ +// TARGET_BACKEND: JVM_IR + +fun foo(x: MutableList) { + x.addFirst("1") + x.addLast("2") +} + +fun bar(x: MutableList) { + x.removeFirst() + x.removeLast() +} + +fun box(): String { + val list = mutableListOf("OK") + foo(list) + if (list.first() != "1") return "FAIL 1" + if (list.last() != "2") return "FAIL 2" + bar(list) + return list.single() +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java index 5edfa32487f..666e393e23c 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestRestGenerated.java @@ -6767,6 +6767,22 @@ public class JvmAbiConsistencyTestRestGenerated extends AbstractJvmAbiConsistenc } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + } } @Nested diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxModernJdkCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxModernJdkCodegenTestGenerated.java index 8ed12af19ac..c3e06599884 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxModernJdkCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxModernJdkCodegenTestGenerated.java @@ -767,4 +767,14 @@ public class BlackBoxModernJdkCodegenTestGenerated extends AbstractBlackBoxCodeg } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); + } + } } diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxModernJdkCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxModernJdkCodegenTestGenerated.java index 36cad4f573b..8ca8f566c47 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxModernJdkCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxModernJdkCodegenTestGenerated.java @@ -803,4 +803,20 @@ public class IrBlackBoxModernJdkCodegenTestGenerated extends AbstractIrBlackBoxC } } } + + @Nested + @TestMetadata("compiler/testData/codegen/boxModernJdk/testsWithJava21") + @TestDataPath("$PROJECT_ROOT") + public class TestsWithJava21 { + @Test + @TestMetadata("addRemoveOnMutableList.kt") + public void testAddRemoveOnMutableList() throws Exception { + runTest("compiler/testData/codegen/boxModernJdk/testsWithJava21/addRemoveOnMutableList.kt"); + } + + @Test + public void testAllFilesPresentInTestsWithJava21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/boxModernJdk/testsWithJava21"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + } } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJvmAbiConsistencyTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJvmAbiConsistencyTest.kt index 2a257a43d9c..5b32a81b5da 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJvmAbiConsistencyTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJvmAbiConsistencyTest.kt @@ -64,6 +64,13 @@ open class AbstractJvmAbiConsistencyTest : } } + forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava21/*") { + defaultDirectives { + JvmEnvironmentConfigurationDirectives.JDK_KIND with TestJdkKind.FULL_JDK_21 + JvmEnvironmentConfigurationDirectives.JVM_TARGET with JvmTarget.JVM_21 + } + } + forTestsMatching("compiler/testData/codegen/box/javaInterop/foreignAnnotationsTests/tests/*") { defaultDirectives { ForeignAnnotationsDirectives.ANNOTATIONS_PATH with JavaForeignAnnotationType.Annotations diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt index c59d42b374c..1cdb0c49381 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt @@ -110,4 +110,8 @@ fun TestConfigurationBuilder.configureModernJavaWhenNeeded() { forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava17/*") { configureModernJavaTest(TestJdkKind.FULL_JDK_17, JvmTarget.JVM_17) } + + forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava21/*") { + configureModernJavaTest(TestJdkKind.FULL_JDK_21, JvmTarget.JVM_21) + } }