Support FULL_JDK directive in diagnostic tests

This commit is contained in:
Alexander Udalov
2017-07-31 13:01:14 -07:00
parent 7601666ec0
commit 8db736e2b4
8 changed files with 21 additions and 12 deletions
@@ -72,7 +72,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
})
}
environment = createEnvironment()
environment = createEnvironment(file)
analyzeAndCheck(file, testFiles)
}
@@ -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