diff --git a/compiler/fir/analysis-tests/build.gradle.kts b/compiler/fir/analysis-tests/build.gradle.kts index aad11fc42df..91ce9a9a6c7 100644 --- a/compiler/fir/analysis-tests/build.gradle.kts +++ b/compiler/fir/analysis-tests/build.gradle.kts @@ -59,14 +59,34 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) { } } +fun Test.configureTest(configureJUnit: JUnitPlatformOptions.() -> Unit = {}) { + dependsOn(":dist") + workingDir = rootDir + useJUnitPlatform { + configureJUnit() + } + useJsIrBoxTests(version = version, buildDir = "$buildDir/") +} + + projectTest( jUnitMode = JUnitMode.JUnit5, defineJDKEnvVariables = listOf(JdkMajorVersion.JDK_1_8, JdkMajorVersion.JDK_11_0, JdkMajorVersion.JDK_17_0) ) { - dependsOn(":dist") - workingDir = rootDir - useJUnitPlatform() - useJsIrBoxTests(version = version, buildDir = "$buildDir/") + configureTest { + excludeTags("Jdk21Test") + } +} + +// Separate configuration is only necessary while JDK 21 is not released, so cannot be obtained via toolchain. +// See KT-58765 for tracking +projectTest( + "jdk21Tests", + jUnitMode = JUnitMode.JUnit5, +) { + configureTest { + includeTags("Jdk21Test") + } } testsJar() diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeJdk21DiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeJdk21DiagnosticTestGenerated.java new file mode 100644 index 00000000000..0933cba54cb --- /dev/null +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeJdk21DiagnosticTestGenerated.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.runners; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/diagnostics/testsWithJdk21") +@TestDataPath("$PROJECT_ROOT") +public class FirLightTreeJdk21DiagnosticTestGenerated extends AbstractFirLightTreeJdk21DiagnosticTest { + @Test + public void testAllFilesPresentInTestsWithJdk21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithJdk21"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("newListMethods.kt") + public void testNewListMethods() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt"); + } +} diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiJdk21DiagnosticTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiJdk21DiagnosticTestGenerated.java new file mode 100644 index 00000000000..6ca4776b17b --- /dev/null +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiJdk21DiagnosticTestGenerated.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.runners; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/diagnostics/testsWithJdk21") +@TestDataPath("$PROJECT_ROOT") +public class FirPsiJdk21DiagnosticTestGenerated extends AbstractFirPsiJdk21DiagnosticTest { + @Test + public void testAllFilesPresentInTestsWithJdk21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithJdk21"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("newListMethods.kt") + public void testNewListMethods() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt"); + } +} diff --git a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TestJdkKind.kt b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TestJdkKind.kt index e2732b4e267..1b0a77f1ae4 100644 --- a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TestJdkKind.kt +++ b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/TestJdkKind.kt @@ -32,6 +32,9 @@ enum class TestJdkKind(val requiresSeparateProcess: Boolean = false) { // JDK found at $JDK_17_0 FULL_JDK_17(requiresSeparateProcess = true), + // JDK found at $JDK_21_0 + FULL_JDK_21(requiresSeparateProcess = true), + // JDK found at java.home FULL_JDK, ANDROID_API, diff --git a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/KtTestUtil.java b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/KtTestUtil.java index 2d0d1a2daf9..aa34496bd40 100644 --- a/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/KtTestUtil.java +++ b/compiler/test-infrastructure-utils/tests/org/jetbrains/kotlin/test/util/KtTestUtil.java @@ -159,6 +159,10 @@ public class KtTestUtil { return getJdkHome("JDK_17_0", "JDK_17"); } + public static File getJdk21Home() { + return getJdkHome("JDK_21_0", "JDK_21"); + } + @NotNull public static String getTestDataPathBase() { return getHomeDirectory() + "/compiler/testData"; diff --git a/compiler/testData/diagnostics/testsWithJdk21/newListMethods.fir.kt b/compiler/testData/diagnostics/testsWithJdk21/newListMethods.fir.kt new file mode 100644 index 00000000000..ef595ad5612 --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJdk21/newListMethods.fir.kt @@ -0,0 +1,46 @@ +// ISSUE: KT-58371 +// WITH_STDLIB + +class A : ArrayList() { + override fun addFirst(t: T) { + super.addFirst(t) + } + + override fun addLast(t: T) { + super.addLast(t) + } + + override fun getFirst(): T = super.getFirst() + override fun getLast(): T = super.getLast() + + override fun removeFirst(): T = super.removeFirst() + override fun removeLast(): T = super.removeLast() + + override fun reversed(): List = super.reversed() +} + +fun foo(x: MutableList, y: ArrayList, z: A) { + x.addFirst("") + x.addLast("") + x.getFirst() + x.getLast() + x.removeFirst() + x.removeLast() + x.reversed() + + y.addFirst("") + y.addLast("") + y.getFirst() + y.getLast() + y.removeFirst() + y.removeLast() + y.reversed() + + z.addFirst("") + z.addLast("") + z.getFirst() + z.getLast() + z.removeFirst() + z.removeLast() + z.reversed() +} diff --git a/compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt b/compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt new file mode 100644 index 00000000000..3c44aaf9b7b --- /dev/null +++ b/compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt @@ -0,0 +1,46 @@ +// ISSUE: KT-58371 +// WITH_STDLIB + +class A : ArrayList() { + override fun addFirst(t: T) { + super.addFirst(t) + } + + override fun addLast(t: T) { + super.addLast(t) + } + + override fun getFirst(): T = super.getFirst() + override fun getLast(): T = super.getLast() + + override fun removeFirst(): T = super.removeFirst() + override fun removeLast(): T = super.removeLast() + + override fun reversed(): List = super.reversed() +} + +fun foo(x: MutableList, y: ArrayList, z: A) { + x.addFirst("") + x.addLast("") + x.getFirst() + x.getLast() + x.removeFirst() + x.removeLast() + x.reversed() + + y.addFirst("") + y.addLast("") + y.getFirst() + y.getLast() + y.removeFirst() + y.removeLast() + y.reversed() + + z.addFirst("") + z.addLast("") + z.getFirst() + z.getLast() + z.removeFirst() + z.removeLast() + z.reversed() +} diff --git a/compiler/tests-common-new/build.gradle.kts b/compiler/tests-common-new/build.gradle.kts index e3c8b469a57..dd8b2b6c742 100644 --- a/compiler/tests-common-new/build.gradle.kts +++ b/compiler/tests-common-new/build.gradle.kts @@ -1,5 +1,3 @@ -import org.jetbrains.kotlin.ideaExt.idea - plugins { kotlin("jvm") id("jps-compatible") @@ -50,15 +48,34 @@ sourceSets { } } +fun Test.configureTest(configureJUnit: JUnitPlatformOptions.() -> Unit = {}) { + dependsOn(":dist") + workingDir = rootDir + useJUnitPlatform { + configureJUnit() + } +} + projectTest( jUnitMode = JUnitMode.JUnit5, defineJDKEnvVariables = listOf( JdkMajorVersion.JDK_11_0 // e.g. org.jetbrains.kotlin.test.runners.ForeignAnnotationsCompiledJavaTestGenerated.Java11Tests ) ) { - dependsOn(":dist") - workingDir = rootDir - useJUnitPlatform() + configureTest { + excludeTags("Jdk21Test") + } +} + +// Separate configuration is only necessary while JDK 21 is not released, so cannot be obtained via toolchain. +// See KT-58765 for tracking +projectTest( + "jdk21Tests", + jUnitMode = JUnitMode.JUnit5, +) { + configureTest { + includeTags("Jdk21Test") + } } testsJar() diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/Jdk21DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/Jdk21DiagnosticTestGenerated.java new file mode 100644 index 00000000000..d562d6f4ffc --- /dev/null +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/Jdk21DiagnosticTestGenerated.java @@ -0,0 +1,32 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.runners; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.test.generators.GenerateCompilerTestsKt}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/testData/diagnostics/testsWithJdk21") +@TestDataPath("$PROJECT_ROOT") +public class Jdk21DiagnosticTestGenerated extends AbstractJdk21DiagnosticTest { + @Test + public void testAllFilesPresentInTestsWithJdk21() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithJdk21"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); + } + + @Test + @TestMetadata("newListMethods.kt") + public void testNewListMethods() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJdk21/newListMethods.kt"); + } +} diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt index d5a9da6c299..3b920e18a43 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/JvmBoxRunner.kt @@ -7,7 +7,10 @@ package org.jetbrains.kotlin.test.backend.handlers import junit.framework.TestCase import org.jetbrains.kotlin.backend.common.CodegenUtil.getMemberDeclarationsToGenerate -import org.jetbrains.kotlin.codegen.* +import org.jetbrains.kotlin.codegen.ClassFileFactory +import org.jetbrains.kotlin.codegen.CodegenTestUtil +import org.jetbrains.kotlin.codegen.GeneratedClassLoader +import org.jetbrains.kotlin.codegen.extractUrls import org.jetbrains.kotlin.fileClasses.JvmFileClassInfo import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil.getFileClassInfoNoResolve import org.jetbrains.kotlin.psi.KtFile @@ -181,6 +184,7 @@ open class JvmBoxRunner(testServices: TestServices) : JvmBinaryArtifactHandler(t TestJdkKind.FULL_JDK -> KtTestUtil.getJdk8Home() TestJdkKind.FULL_JDK_11 -> KtTestUtil.getJdk11Home() TestJdkKind.FULL_JDK_17 -> KtTestUtil.getJdk17Home() + TestJdkKind.FULL_JDK_21 -> KtTestUtil.getJdk21Home() else -> error("Unsupported JDK kind: $jdkKind") } diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt index 4e70e51561c..c162d8db77d 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt @@ -17,6 +17,7 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureFirHandlersStep import org.jetbrains.kotlin.test.builders.firHandlersStep import org.jetbrains.kotlin.test.builders.irHandlersStep +import org.jetbrains.kotlin.test.directives.CodegenTestDirectives import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.WITH_EXTENDED_CHECKERS @@ -31,17 +32,15 @@ import org.jetbrains.kotlin.test.frontend.fir.handlers.* import org.jetbrains.kotlin.test.model.DependencyKind import org.jetbrains.kotlin.test.model.FrontendFacade import org.jetbrains.kotlin.test.model.FrontendKinds +import org.jetbrains.kotlin.test.services.JsLibraryProvider +import org.jetbrains.kotlin.test.services.TestService +import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator import org.jetbrains.kotlin.test.services.fir.FirOldFrontendMetaConfigurator import org.jetbrains.kotlin.test.services.service import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider import org.jetbrains.kotlin.test.services.sourceProviders.CoroutineHelpersSourceFilesProvider -import org.jetbrains.kotlin.test.FirParser -import org.jetbrains.kotlin.test.directives.CodegenTestDirectives -import org.jetbrains.kotlin.test.services.JsLibraryProvider -import org.jetbrains.kotlin.test.services.TestService -import org.jetbrains.kotlin.test.services.TestServices abstract class AbstractFirDiagnosticTestBase(val parser: FirParser) : AbstractKotlinCompilerTest() { override fun TestConfigurationBuilder.configuration() { @@ -51,6 +50,26 @@ abstract class AbstractFirDiagnosticTestBase(val parser: FirParser) : AbstractKo } } +@Jdk21Test +abstract class AbstractFirPsiJdk21DiagnosticTest : AbstractFirDiagnosticTestBase(FirParser.Psi) { + override fun configure(builder: TestConfigurationBuilder) { + super.configure(builder) + builder.defaultDirectives { + JDK_KIND with TestJdkKind.FULL_JDK_21 + } + } +} + +@Jdk21Test +abstract class AbstractFirLightTreeJdk21DiagnosticTest : AbstractFirDiagnosticTestBase(FirParser.LightTree) { + override fun configure(builder: TestConfigurationBuilder) { + super.configure(builder) + builder.defaultDirectives { + JDK_KIND with TestJdkKind.FULL_JDK_21 + } + } +} + abstract class AbstractFirPsiDiagnosticTest : AbstractFirDiagnosticTestBase(FirParser.Psi) abstract class AbstractFirLightTreeDiagnosticsTest : AbstractFirDiagnosticTestBase(FirParser.LightTree) { override fun configure(builder: TestConfigurationBuilder) { diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJdk21DiagnosticTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJdk21DiagnosticTest.kt new file mode 100644 index 00000000000..cc8b436a49c --- /dev/null +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractJdk21DiagnosticTest.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.runners + +import org.jetbrains.kotlin.test.TestJdkKind +import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder +import org.jetbrains.kotlin.test.directives.ConfigurationDirectives +import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives + +@Jdk21Test +abstract class AbstractJdk21DiagnosticTest : AbstractDiagnosticTest() { + override fun configure(builder: TestConfigurationBuilder) { + super.configure(builder) + builder.defaultDirectives { + JvmEnvironmentConfigurationDirectives.JDK_KIND with TestJdkKind.FULL_JDK_21 + +ConfigurationDirectives.WITH_STDLIB + +JvmEnvironmentConfigurationDirectives.WITH_REFLECT + } + } +} \ No newline at end of file diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/Jdk21Test.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/Jdk21Test.kt new file mode 100644 index 00000000000..2b1432cd94c --- /dev/null +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/Jdk21Test.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.runners + +import org.junit.jupiter.api.Tag + +/** + * This tag is only necessary while JDK 21 is not released, so cannot be obtained via toolchain. + * See KT-58765 for tracking + */ +@Tag("Jdk21Test") +annotation class Jdk21Test diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/configuration/JvmEnvironmentConfigurator.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/configuration/JvmEnvironmentConfigurator.kt index 76d20355466..50c079c7981 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/configuration/JvmEnvironmentConfigurator.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/configuration/JvmEnvironmentConfigurator.kt @@ -135,6 +135,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig TestJdkKind.FULL_JDK_6 -> File(System.getenv("JDK_16") ?: error("Environment variable JDK_16 is not set")) TestJdkKind.FULL_JDK_11 -> KtTestUtil.getJdk11Home() TestJdkKind.FULL_JDK_17 -> KtTestUtil.getJdk17Home() + TestJdkKind.FULL_JDK_21 -> KtTestUtil.getJdk21Home() TestJdkKind.FULL_JDK -> if (JavaVersion.current() >= JavaVersion.compose(9)) File(System.getProperty("java.home")) else null TestJdkKind.ANDROID_API -> null } @@ -146,6 +147,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig TestJdkKind.FULL_JDK_6 -> null TestJdkKind.FULL_JDK_11 -> null TestJdkKind.FULL_JDK_17 -> null + TestJdkKind.FULL_JDK_21 -> null TestJdkKind.FULL_JDK -> null } } @@ -197,6 +199,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig TestJdkKind.FULL_JDK_6 -> {} TestJdkKind.FULL_JDK_11 -> {} TestJdkKind.FULL_JDK_17 -> {} + TestJdkKind.FULL_JDK_21 -> {} TestJdkKind.FULL_JDK -> {} } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java index f1b4ce857c5..dc99e97f217 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java @@ -197,6 +197,9 @@ public class KotlinTestUtils { else if (jdkKind == TestJdkKind.FULL_JDK_17) { configuration.put(JVMConfigurationKeys.JDK_HOME, KtTestUtil.getJdk17Home()); } + else if (jdkKind == TestJdkKind.FULL_JDK_21) { + configuration.put(JVMConfigurationKeys.JDK_HOME, KtTestUtil.getJdk21Home()); + } else if (JavaVersion.current().compareTo(JavaVersion.compose(9)) >= 0) { configuration.put(JVMConfigurationKeys.JDK_HOME, new File(System.getProperty("java.home"))); } diff --git a/compiler/tests-for-compiler-generator/tests/org/jetbrains/kotlin/test/generators/GenerateJUnit5CompilerTests.kt b/compiler/tests-for-compiler-generator/tests/org/jetbrains/kotlin/test/generators/GenerateJUnit5CompilerTests.kt index 79dea7c89c3..90b54df3480 100644 --- a/compiler/tests-for-compiler-generator/tests/org/jetbrains/kotlin/test/generators/GenerateJUnit5CompilerTests.kt +++ b/compiler/tests-for-compiler-generator/tests/org/jetbrains/kotlin/test/generators/GenerateJUnit5CompilerTests.kt @@ -10,8 +10,11 @@ import org.jetbrains.kotlin.generators.util.TestGeneratorUtil import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.runners.* import org.jetbrains.kotlin.test.runners.codegen.* -import org.jetbrains.kotlin.test.runners.ir.* -import org.jetbrains.kotlin.test.runners.ir.interpreter.* +import org.jetbrains.kotlin.test.runners.ir.AbstractClassicJvmIrTextTest +import org.jetbrains.kotlin.test.runners.ir.AbstractFirLightTreeJvmIrTextTest +import org.jetbrains.kotlin.test.runners.ir.AbstractFirPsiJvmIrTextTest +import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterFirPsi2IrTest +import org.jetbrains.kotlin.test.runners.ir.interpreter.AbstractJvmIrInterpreterAfterPsi2IrTest import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN import org.jetbrains.kotlin.visualizer.fir.AbstractFirVisualizerTest import org.jetbrains.kotlin.visualizer.psi.AbstractPsiVisualizerTest @@ -26,6 +29,10 @@ fun generateJUnit5CompilerTests(args: Array) { model("diagnostics/testsWithStdLib", excludedPattern = excludedCustomTestdataPattern) } + testClass { + model("diagnostics/testsWithJdk21", excludedPattern = excludedCustomTestdataPattern) + } + testClass { model("diagnostics/tests/javac", pattern = "^(.*)\\.kts?$", excludedPattern = excludedCustomTestdataPattern) } @@ -209,6 +216,14 @@ fun generateJUnit5CompilerTests(args: Array) { model("diagnostics/testsWithStdLib", excludedPattern = excludedCustomTestdataPattern) } + testClass { + model("diagnostics/testsWithJdk21", excludedPattern = excludedCustomTestdataPattern) + } + + testClass { + model("diagnostics/testsWithJdk21", excludedPattern = excludedCustomTestdataPattern) + } + testClass(suiteTestClassName = "FirOldFrontendMPPDiagnosticsWithPsiTestGenerated") { model("diagnostics/tests/multiplatform", pattern = "^(.*)\\.kts?$", excludedPattern = excludedCustomTestdataPattern) } diff --git a/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt b/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt index 49bd32aec4e..ca392485c25 100644 --- a/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt +++ b/compiler/tests-java8/tests/org/jetbrains/kotlin/serialization/builtins/AdditionalBuiltInsMembersSignatureListsTest.kt @@ -75,6 +75,7 @@ class AdditionalBuiltInsMembersSignatureListsTest : KotlinTestWithEnvironment() } } + // TODO: Get rid of it once JDK 21 is released (KT-58765 for tracking) private val LATE_JDK_SIGNATURES = mapOf( "java/util/List" to setOf( // From JDK 21