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)
|
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.config.JVMConfigurationKeys;
|
||||||
import org.jetbrains.kotlin.script.StandardScriptDefinition;
|
import org.jetbrains.kotlin.script.StandardScriptDefinition;
|
||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils;
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
import org.jetbrains.kotlin.test.KotlinTestUtils;
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase;
|
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase;
|
||||||
@@ -73,10 +74,10 @@ public abstract class KotlinMultiFileTestWithJava<M, F> extends KtUsefulTestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected KotlinCoreEnvironment createEnvironment() {
|
protected KotlinCoreEnvironment createEnvironment(@NotNull File file) {
|
||||||
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(
|
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(
|
||||||
getConfigurationKind(),
|
getConfigurationKind(),
|
||||||
getTestJdkKind(),
|
getTestJdkKind(file),
|
||||||
CollectionsKt.plus(Collections.singletonList(KotlinTestUtils.getAnnotationsJar()), getExtraClasspath()),
|
CollectionsKt.plus(Collections.singletonList(KotlinTestUtils.getAnnotationsJar()), getExtraClasspath()),
|
||||||
isJavaSourceRootNeeded() ? Collections.singletonList(javaFilesDir) : Collections.emptyList()
|
isJavaSourceRootNeeded() ? Collections.singletonList(javaFilesDir) : Collections.emptyList()
|
||||||
);
|
);
|
||||||
@@ -108,8 +109,10 @@ public abstract class KotlinMultiFileTestWithJava<M, F> extends KtUsefulTestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected TestJdkKind getTestJdkKind() {
|
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||||
return TestJdkKind.MOCK_JDK;
|
return InTextDirectivesUtils.isDirectiveDefined(FilesKt.readText(file, Charsets.UTF_8), "FULL_JDK")
|
||||||
|
? TestJdkKind.FULL_JDK
|
||||||
|
: TestJdkKind.MOCK_JDK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public abstract class AbstractCompilerLightClassTest extends KotlinMultiFileTest
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doMultiFileTest(File file, Map<String, ModuleAndDependencies> modules, List<Void> files) throws IOException {
|
protected void doMultiFileTest(File file, Map<String, ModuleAndDependencies> modules, List<Void> files) throws IOException {
|
||||||
KotlinCoreEnvironment environment = createEnvironment();
|
KotlinCoreEnvironment environment = createEnvironment(file);
|
||||||
File expectedFile = KotlinTestUtils.replaceExtension(file, "java");
|
File expectedFile = KotlinTestUtils.replaceExtension(file, "java");
|
||||||
LightClassTestCommon.INSTANCE.testLightClass(expectedFile, file, s -> {
|
LightClassTestCommon.INSTANCE.testLightClass(expectedFile, file, s -> {
|
||||||
try {
|
try {
|
||||||
|
|||||||
+3
-1
@@ -21,6 +21,8 @@ import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest;
|
|||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public abstract class AbstractDiagnosticsWithModifiedMockJdkTest extends AbstractDiagnosticsTest {
|
public abstract class AbstractDiagnosticsWithModifiedMockJdkTest extends AbstractDiagnosticsTest {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
@@ -30,7 +32,7 @@ public abstract class AbstractDiagnosticsWithModifiedMockJdkTest extends Abstrac
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected TestJdkKind getTestJdkKind() {
|
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||||
return TestJdkKind.MODIFIED_MOCK_JDK;
|
return TestJdkKind.MODIFIED_MOCK_JDK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -20,6 +20,8 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
|
||||||
public abstract class AbstractDiagnosticsWithFullJdkTest extends AbstractDiagnosticsTest {
|
public abstract class AbstractDiagnosticsWithFullJdkTest extends AbstractDiagnosticsTest {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
@@ -29,7 +31,7 @@ public abstract class AbstractDiagnosticsWithFullJdkTest extends AbstractDiagnos
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected TestJdkKind getTestJdkKind() {
|
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||||
return TestJdkKind.FULL_JDK;
|
return TestJdkKind.FULL_JDK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public abstract class AbstractDiagnosticsWithJdk9Test extends AbstractDiagnostic
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
protected TestJdkKind getTestJdkKind() {
|
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||||
return TestJdkKind.FULL_JDK_9;
|
return TestJdkKind.FULL_JDK_9;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
|
|||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||||
|
import java.io.File
|
||||||
import kotlin.script.extensions.SamWithReceiverAnnotations
|
import kotlin.script.extensions.SamWithReceiverAnnotations
|
||||||
import kotlin.script.templates.ScriptTemplateDefinition
|
import kotlin.script.templates.ScriptTemplateDefinition
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ abstract class AbstractSamWithReceiverScriptTest : AbstractDiagnosticsTest() {
|
|||||||
private val TEST_ANNOTATIONS = emptyList<String>()
|
private val TEST_ANNOTATIONS = emptyList<String>()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createEnvironment() = super.createEnvironment().apply {
|
override fun createEnvironment(file: File) = super.createEnvironment(file).apply {
|
||||||
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
|
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
|
||||||
val def = KotlinScriptDefinitionFromAnnotatedTemplate(ScriptForSamWithReceivers::class, null, null, emptyMap())
|
val def = KotlinScriptDefinitionFromAnnotatedTemplate(ScriptForSamWithReceivers::class, null, null, emptyMap())
|
||||||
configuration.add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, def)
|
configuration.add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, def)
|
||||||
|
|||||||
+3
-2
@@ -18,13 +18,14 @@ package org.jetbrains.kotlin.samWithReceiver
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
|
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
|
||||||
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
abstract class AbstractSamWithReceiverTest : AbstractDiagnosticsTest() {
|
abstract class AbstractSamWithReceiverTest : AbstractDiagnosticsTest() {
|
||||||
private companion object {
|
private companion object {
|
||||||
private val TEST_ANNOTATIONS = listOf("SamWithReceiver")
|
private val TEST_ANNOTATIONS = listOf("SamWithReceiver")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createEnvironment() = super.createEnvironment().apply {
|
override fun createEnvironment(file: File) = super.createEnvironment(file).apply {
|
||||||
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
|
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user