Support FULL_JDK directive in diagnostic tests
This commit is contained in:
@@ -72,7 +72,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
||||
})
|
||||
}
|
||||
|
||||
environment = createEnvironment()
|
||||
environment = createEnvironment(file)
|
||||
|
||||
analyzeAndCheck(file, testFiles)
|
||||
}
|
||||
|
||||
+7
-4
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.config.ContentRootsKt;
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
|
||||
import org.jetbrains.kotlin.script.StandardScriptDefinition;
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase;
|
||||
@@ -73,10 +74,10 @@ public abstract class KotlinMultiFileTestWithJava<M, F> extends KtUsefulTestCase
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected KotlinCoreEnvironment createEnvironment() {
|
||||
protected KotlinCoreEnvironment createEnvironment(@NotNull File file) {
|
||||
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(
|
||||
getConfigurationKind(),
|
||||
getTestJdkKind(),
|
||||
getTestJdkKind(file),
|
||||
CollectionsKt.plus(Collections.singletonList(KotlinTestUtils.getAnnotationsJar()), getExtraClasspath()),
|
||||
isJavaSourceRootNeeded() ? Collections.singletonList(javaFilesDir) : Collections.emptyList()
|
||||
);
|
||||
@@ -108,8 +109,10 @@ public abstract class KotlinMultiFileTestWithJava<M, F> extends KtUsefulTestCase
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected TestJdkKind getTestJdkKind() {
|
||||
return TestJdkKind.MOCK_JDK;
|
||||
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||
return InTextDirectivesUtils.isDirectiveDefined(FilesKt.readText(file, Charsets.UTF_8), "FULL_JDK")
|
||||
? TestJdkKind.FULL_JDK
|
||||
: TestJdkKind.MOCK_JDK;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user