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.
This commit is contained in:
@@ -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<String>)?.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<String>)?.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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user