From 4b405c6c0f09f0608bf886bfbeec4c113129354f Mon Sep 17 00:00:00 2001 From: Pavel Kirpichenkov Date: Tue, 5 Nov 2019 12:14:35 +0300 Subject: [PATCH] Supply kotlin mock JDK to relevant test runners Default mock JDK from IDEA 193, "wins" mock JDK from kotlin in some tests. In script configuration test this breaks resolution of java declarations from script environment. Overriding getTestProjectJdk replaces default test project JDK with kotlin mock JDK. Configuration in AbstractMultiFileHighlightingTest was updated similarly to fix test failures. --- .../script/AbstractScriptConfigurationTest.kt | 23 +++++++++++-------- .../AbstractMultiFileHighlightingTest.java | 6 +++++ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt index 425546ef511..d5da21bb8cb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt @@ -9,6 +9,7 @@ import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.module.JavaModuleType import com.intellij.openapi.module.Module import com.intellij.openapi.projectRoots.ProjectJdkTable +import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.roots.ModuleRootModificationUtil import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.io.FileUtil @@ -149,6 +150,10 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { super.tearDown() } + override fun getTestProjectJdk(): Sdk { + return PluginTestCaseBase.mockJdk() + } + private fun createTestModuleByName(name: String): Module { val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) } val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path) @@ -197,16 +202,14 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { env["template-classes-names"] = listOf("custom.scriptDefinition.Template") } - if (env["javaHome"] != null) { - val jdkKind = when ((env["javaHome"] as? List)?.singleOrNull()) { - "9" -> TestJdkKind.FULL_JDK_9 - else -> TestJdkKind.MOCK_JDK - } - runWriteAction { - val jdk = PluginTestCaseBase.jdk(jdkKind) - ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable) - env["javaHome"] = File(jdk.homePath) - } + val jdkKind = when ((env["javaHome"] as? List)?.singleOrNull()) { + "9" -> TestJdkKind.FULL_JDK_9 + else -> TestJdkKind.MOCK_JDK + } + runWriteAction { + val jdk = PluginTestCaseBase.jdk(jdkKind) + ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable) + env["javaHome"] = File(jdk.homePath) } env.putAll(defaultEnvironment) diff --git a/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractMultiFileHighlightingTest.java b/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractMultiFileHighlightingTest.java index 97ecbec9863..3459fc46b04 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractMultiFileHighlightingTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/stubs/AbstractMultiFileHighlightingTest.java @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.idea.stubs; +import com.intellij.openapi.projectRoots.Sdk; import kotlin.Unit; import kotlin.jvm.functions.Function0; import org.jetbrains.annotations.NotNull; @@ -39,4 +40,9 @@ public abstract class AbstractMultiFileHighlightingTest extends AbstractMultiHig protected String getTestDataPath() { return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/"; } + + @Override + protected Sdk getTestProjectJdk() { + return PluginTestCaseBase.mockJdk(); + } }