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.JavaModuleType
|
||||||
import com.intellij.openapi.module.Module
|
import com.intellij.openapi.module.Module
|
||||||
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
import com.intellij.openapi.projectRoots.ProjectJdkTable
|
||||||
|
import com.intellij.openapi.projectRoots.Sdk
|
||||||
import com.intellij.openapi.roots.ModuleRootModificationUtil
|
import com.intellij.openapi.roots.ModuleRootModificationUtil
|
||||||
import com.intellij.openapi.roots.ProjectRootManager
|
import com.intellij.openapi.roots.ProjectRootManager
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
@@ -149,6 +150,10 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() {
|
|||||||
super.tearDown()
|
super.tearDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getTestProjectJdk(): Sdk {
|
||||||
|
return PluginTestCaseBase.mockJdk()
|
||||||
|
}
|
||||||
|
|
||||||
private fun createTestModuleByName(name: String): Module {
|
private fun createTestModuleByName(name: String): Module {
|
||||||
val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) }
|
val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) }
|
||||||
val newModule = createModuleAt(name, project, JavaModuleType.getModuleType(), newModuleDir.path)
|
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")
|
env["template-classes-names"] = listOf("custom.scriptDefinition.Template")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (env["javaHome"] != null) {
|
val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) {
|
||||||
val jdkKind = when ((env["javaHome"] as? List<String>)?.singleOrNull()) {
|
"9" -> TestJdkKind.FULL_JDK_9
|
||||||
"9" -> TestJdkKind.FULL_JDK_9
|
else -> TestJdkKind.MOCK_JDK
|
||||||
else -> TestJdkKind.MOCK_JDK
|
}
|
||||||
}
|
runWriteAction {
|
||||||
runWriteAction {
|
val jdk = PluginTestCaseBase.jdk(jdkKind)
|
||||||
val jdk = PluginTestCaseBase.jdk(jdkKind)
|
ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable)
|
||||||
ProjectJdkTable.getInstance().addJdk(jdk, testRootDisposable)
|
env["javaHome"] = File(jdk.homePath)
|
||||||
env["javaHome"] = File(jdk.homePath)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
env.putAll(defaultEnvironment)
|
env.putAll(defaultEnvironment)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.stubs;
|
package org.jetbrains.kotlin.idea.stubs;
|
||||||
|
|
||||||
|
import com.intellij.openapi.projectRoots.Sdk;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
import kotlin.jvm.functions.Function0;
|
import kotlin.jvm.functions.Function0;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -39,4 +40,9 @@ public abstract class AbstractMultiFileHighlightingTest extends AbstractMultiHig
|
|||||||
protected String getTestDataPath() {
|
protected String getTestDataPath() {
|
||||||
return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/";
|
return PluginTestCaseBase.getTestDataPathBase() + "/multiFileHighlighting/";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Sdk getTestProjectJdk() {
|
||||||
|
return PluginTestCaseBase.mockJdk();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user