Updated AbstractJetInspectionTest to use runtime if necessary
This commit is contained in:
committed by
Zalim Bashorov
parent
f4beffd451
commit
9f63f7c488
@@ -30,6 +30,11 @@ import com.intellij.testFramework.InspectionTestUtil
|
|||||||
import com.intellij.codeInspection.InspectionManager
|
import com.intellij.codeInspection.InspectionManager
|
||||||
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
|
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder
|
import org.jetbrains.jet.JetTestCaseBuilder
|
||||||
|
import org.jetbrains.jet.testing.ConfigLibraryUtil
|
||||||
|
import com.intellij.testFramework.IdeaTestUtil
|
||||||
|
import com.intellij.openapi.projectRoots.JavaSdk
|
||||||
|
import com.intellij.openapi.projectRoots.Sdk
|
||||||
|
import org.apache.commons.lang.SystemUtils;
|
||||||
|
|
||||||
public abstract class AbstractJetInspectionTest: LightCodeInsightFixtureTestCase() {
|
public abstract class AbstractJetInspectionTest: LightCodeInsightFixtureTestCase() {
|
||||||
override fun getProjectDescriptor(): LightProjectDescriptor = JetLightProjectDescriptor.INSTANCE
|
override fun getProjectDescriptor(): LightProjectDescriptor = JetLightProjectDescriptor.INSTANCE
|
||||||
@@ -51,14 +56,35 @@ public abstract class AbstractJetInspectionTest: LightCodeInsightFixtureTestCase
|
|||||||
.listFiles { it.getName().endsWith(".kt") }!!
|
.listFiles { it.getName().endsWith(".kt") }!!
|
||||||
.map { configureByFile(it.getName())!!.getVirtualFile()!! }
|
.map { configureByFile(it.getName())!!.getVirtualFile()!! }
|
||||||
|
|
||||||
val scope = AnalysisScope(getProject(), virtualFiles)
|
val isWithRuntime = virtualFiles.any({ file ->
|
||||||
scope.invalidate()
|
InTextDirectivesUtils.findStringWithPrefixes(String(file.contentsToByteArray(), "utf-8"), "// WITH_RUNTIME") != null
|
||||||
|
})
|
||||||
|
|
||||||
val inspectionManager = (InspectionManager.getInstance(getProject()) as InspectionManagerEx)
|
try {
|
||||||
val globalContext = CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, toolWrapper)
|
if (isWithRuntime) {
|
||||||
|
ConfigLibraryUtil.configureKotlinRuntime(myFixture!!.getModule(), getFullJavaJDK());
|
||||||
|
}
|
||||||
|
|
||||||
InspectionTestUtil.runTool(toolWrapper, scope, globalContext, inspectionManager)
|
val scope = AnalysisScope(getProject(), virtualFiles)
|
||||||
InspectionTestUtil.compareToolResults(globalContext, toolWrapper, false, inspectionsTestDir.getPath())
|
scope.invalidate()
|
||||||
|
|
||||||
|
val inspectionManager = (InspectionManager.getInstance(getProject()) as InspectionManagerEx)
|
||||||
|
val globalContext = CodeInsightTestFixtureImpl.createGlobalContextForTool(scope, getProject(), inspectionManager, toolWrapper)
|
||||||
|
|
||||||
|
InspectionTestUtil.runTool(toolWrapper, scope, globalContext, inspectionManager)
|
||||||
|
InspectionTestUtil.compareToolResults(globalContext, toolWrapper, false, inspectionsTestDir.getPath())
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
if (isWithRuntime) {
|
||||||
|
ConfigLibraryUtil.unConfigureKotlinRuntime(myFixture!!.getModule(), IdeaTestUtil.getMockJdk17());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected fun getFullJavaJDK(): Sdk {
|
||||||
|
val javaPath = checkNotNull(SystemUtils.getJavaHome()?.getAbsolutePath(), "JDK Path must not be null")
|
||||||
|
val jdk = JavaSdk.getInstance()?.createJdk("JDK", javaPath);
|
||||||
|
return checkNotNull(jdk, "Could not obtain JDK instance")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user