From 6a049c9ab5f79111f5aa19d4f8dc99e1b7265d79 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 22 Mar 2017 12:26:54 +0300 Subject: [PATCH] Fix Java6BuiltInsWithJDKMembersTest After update of the project to JDK 8, the default JDK at java.home is now JDK 8. However, this test relied on the fact that the default is JDK 6. Pass the path to the JDK 6 explicitly --- .../org/jetbrains/kotlin/test/KotlinTestUtils.java | 3 +++ .../org/jetbrains/kotlin/test/TestJdkKind.java | 3 +++ .../builtins/AbstractBuiltInsWithJDKMembersTest.kt | 5 ++++- .../builtins/Java6BuiltInsWithJDKMembersTest.kt | 4 ++++ compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java | 7 ++++++- 5 files changed, 20 insertions(+), 2 deletions(-) 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