diff --git a/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestUtils.java b/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestUtils.java index 19a6e08a2a6..dfc059f0efd 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestUtils.java +++ b/compiler/tests-common/org/jetbrains/kotlin/test/KotlinTestUtils.java @@ -468,6 +468,9 @@ public class KotlinTestUtils { else if (jdkKind == TestJdkKind.ANDROID_API) { JvmContentRootsKt.addJvmClasspathRoot(configuration, findAndroidApiJar()); } + else if (jdkKind == TestJdkKind.FULL_JDK_6) { + JvmContentRootsKt.addJvmClasspathRoots(configuration, PathUtil.getJdkClassesRoots(System.getenv("JDK_16"))); + } else { JvmContentRootsKt.addJvmClasspathRoots(configuration, PathUtil.getJdkClassesRoots()); } diff --git a/compiler/tests-common/org/jetbrains/kotlin/test/TestJdkKind.java b/compiler/tests-common/org/jetbrains/kotlin/test/TestJdkKind.java index 686d7d91eae..32592eb9675 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/test/TestJdkKind.java +++ b/compiler/tests-common/org/jetbrains/kotlin/test/TestJdkKind.java @@ -21,6 +21,9 @@ public enum TestJdkKind { // Differs from common mock JDK only by one additional 'nonExistingMethod' in Collection and constructor from Double in Throwable // It's needed to test the way we load additional built-ins members that neither in black nor white lists MODIFIED_MOCK_JDK, + // JDK found at $JDK_16 + FULL_JDK_6, + // JDK found at java.home FULL_JDK, ANDROID_API, } diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt index ea64efa92b7..5737db9b752 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/AbstractBuiltInsWithJDKMembersTest.kt @@ -42,7 +42,10 @@ abstract class AbstractBuiltInsWithJDKMembersTest : KotlinTestWithEnvironment() }) override fun createEnvironment(): KotlinCoreEnvironment = - createEnvironmentWithJdk(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK) + createEnvironmentWithJdk(ConfigurationKind.JDK_ONLY, testJdkKind) + + protected open val testJdkKind: TestJdkKind + get() = TestJdkKind.FULL_JDK protected fun doTest(builtinVersionName: String) { val module = JvmResolveUtil.analyze(environment).moduleDescriptor as ModuleDescriptorImpl diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/Java6BuiltInsWithJDKMembersTest.kt b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/Java6BuiltInsWithJDKMembersTest.kt index 4e4fcc8b798..51cf5c2aec9 100644 --- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/Java6BuiltInsWithJDKMembersTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/Java6BuiltInsWithJDKMembersTest.kt @@ -16,7 +16,11 @@ package org.jetbrains.kotlin.serialization.builtins +import org.jetbrains.kotlin.test.TestJdkKind + class Java6BuiltInsWithJDKMembersTest : AbstractBuiltInsWithJDKMembersTest() { + override val testJdkKind get() = TestJdkKind.FULL_JDK_6 + fun testLoadBuiltIns() { doTest("java6") } diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java index 4ae88299ceb..90538b9f85e 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java +++ b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java @@ -153,7 +153,12 @@ public class PathUtil { @NotNull public static List getJdkClassesRoots() { - return JavaSdkUtil.getJdkClassesRoots(new File(System.getProperty("java.home")), true); + return getJdkClassesRoots(System.getProperty("java.home")); + } + + @NotNull + public static List getJdkClassesRoots(@NotNull String javaHome) { + return JavaSdkUtil.getJdkClassesRoots(new File(javaHome), true); } @NotNull