Merge 'getTestJdkKind' and 'getJdkKind' and move to base class
This commit is contained in:
+1
-1
@@ -219,7 +219,7 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager
|
||||
if (hasBoxMethod(fullFileText)) {
|
||||
val testFiles = createTestFiles(file, fullFileText)
|
||||
val kind = extractConfigurationKind(testFiles)
|
||||
val jdkKind = getJdkKind(testFiles)
|
||||
val jdkKind = getTestJdkKind(testFiles)
|
||||
val keyConfiguration = CompilerConfiguration()
|
||||
updateConfigurationByDirectivesInTestFiles(testFiles, keyConfiguration)
|
||||
|
||||
|
||||
+1
-2
@@ -7,14 +7,13 @@ package org.jetbrains.kotlin.fir
|
||||
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractFirDiagnosticsWithStdlibTest : AbstractFirDiagnosticsTest() {
|
||||
override fun getConfigurationKind(): ConfigurationKind {
|
||||
return ConfigurationKind.ALL
|
||||
}
|
||||
|
||||
override fun getTestJdkKind(file: File): TestJdkKind {
|
||||
override fun getTestJdkKind(testFiles: MutableList<TestFile>): TestJdkKind {
|
||||
return TestJdkKind.FULL_JDK
|
||||
}
|
||||
}
|
||||
+1
-3
@@ -16,11 +16,9 @@ import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.utils.rethrow
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
abstract class AbstractCompileKotlinAgainstKlibTest : AbstractBlackBoxCodegenTest() {
|
||||
lateinit var klibName: String
|
||||
@@ -35,7 +33,7 @@ abstract class AbstractCompileKotlinAgainstKlibTest : AbstractBlackBoxCodegenTes
|
||||
val classpath: MutableList<File> = ArrayList()
|
||||
classpath.add(KotlinTestUtils.getAnnotationsJar())
|
||||
val configuration = createConfiguration(
|
||||
configurationKind, CodegenTestCase.getJdkKind(files),
|
||||
configurationKind, getTestJdkKind(files),
|
||||
classpath,
|
||||
listOf(outputDir),
|
||||
files
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ abstract class AbstractCompilerLightClassTest : KotlinMultiFileTestWithJava<Kotl
|
||||
override fun isKotlinSourceRootNeeded(): Boolean = true
|
||||
|
||||
override fun doMultiFileTest(file: File, files: List<TestFile>) {
|
||||
val environment = createEnvironment(file)
|
||||
val environment = createEnvironment(file, files)
|
||||
val expectedFile = KotlinTestUtils.replaceExtension(file, "java")
|
||||
val allowFrontendExceptions = InTextDirectivesUtils.isDirectiveDefined(file.readText(), "// ALLOW_FRONTEND_EXCEPTION")
|
||||
|
||||
|
||||
+2
-2
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest;
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class AbstractDiagnosticsWithModifiedMockJdkTest extends AbstractDiagnosticsTest {
|
||||
@NotNull
|
||||
@@ -32,7 +32,7 @@ public abstract class AbstractDiagnosticsWithModifiedMockJdkTest extends Abstrac
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||
protected TestJdkKind getTestJdkKind(@NotNull List<TestFile> testFiles) {
|
||||
return TestJdkKind.MODIFIED_MOCK_JDK;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class AbstractDiagnosticsWithJdk9Test extends AbstractDiagnosticsTest {
|
||||
@NotNull
|
||||
@@ -31,7 +31,7 @@ public abstract class AbstractDiagnosticsWithJdk9Test extends AbstractDiagnostic
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||
protected TestJdkKind getTestJdkKind(@NotNull List<TestFile> testFiles) {
|
||||
return TestJdkKind.FULL_JDK_9;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ abstract class AbstractForeignAnnotationsTest : AbstractDiagnosticsTest() {
|
||||
|
||||
override fun getConfigurationKind(): ConfigurationKind = ConfigurationKind.ALL
|
||||
|
||||
override fun getTestJdkKind(file: File): TestJdkKind = TestJdkKind.FULL_JDK
|
||||
override fun getTestJdkKind(testFiles: MutableList<TestFile>): TestJdkKind = TestJdkKind.FULL_JDK
|
||||
|
||||
open protected val annotationsPath: String
|
||||
get() = FOREIGN_ANNOTATIONS_SOURCES_PATH
|
||||
|
||||
@@ -91,7 +91,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
|
||||
wholeFile: File,
|
||||
files: List<TestFile>
|
||||
) {
|
||||
environment = createEnvironment(wholeFile)
|
||||
environment = createEnvironment(wholeFile, files)
|
||||
//after environment initialization cause of `tearDown` logic, maybe it's obsolete
|
||||
if (shouldSkipTest(wholeFile, files)) {
|
||||
println("${wholeFile.name} test is skipped")
|
||||
|
||||
+5
-9
@@ -63,10 +63,13 @@ public abstract class KotlinMultiFileTestWithJava<M extends KotlinBaseTest.TestM
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected KotlinCoreEnvironment createEnvironment(@NotNull File file) {
|
||||
protected KotlinCoreEnvironment createEnvironment(
|
||||
@NotNull File file,
|
||||
@NotNull List<TestFile> files
|
||||
) {
|
||||
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(
|
||||
getConfigurationKind(),
|
||||
getTestJdkKind(file),
|
||||
getTestJdkKind(files),
|
||||
getClasspath(file),
|
||||
isJavaSourceRootNeeded() ? Collections.singletonList(javaFilesDir) : Collections.emptyList()
|
||||
);
|
||||
@@ -106,13 +109,6 @@ public abstract class KotlinMultiFileTestWithJava<M extends KotlinBaseTest.TestM
|
||||
return ConfigurationKind.JDK_ONLY;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected TestJdkKind getTestJdkKind(@NotNull File file) {
|
||||
return InTextDirectivesUtils.isDirectiveDefined(FilesKt.readText(file, Charsets.UTF_8), "FULL_JDK")
|
||||
? TestJdkKind.FULL_JDK
|
||||
: TestJdkKind.MOCK_JDK;
|
||||
}
|
||||
|
||||
private List<File> getClasspath(File file) {
|
||||
List<File> result = new ArrayList<>();
|
||||
result.add(KotlinTestUtils.getAnnotationsJar());
|
||||
|
||||
+2
-2
@@ -98,7 +98,7 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
||||
private ClassFileFactory compileA(@NotNull TestFile testFile, List<TestFile> files) {
|
||||
Disposable compileDisposable = createDisposable("compileA");
|
||||
CompilerConfiguration configuration = createConfiguration(
|
||||
ConfigurationKind.ALL, getJdkKind(files), Collections.singletonList(KotlinTestUtils.getAnnotationsJar()),
|
||||
ConfigurationKind.ALL, getTestJdkKind(files), Collections.singletonList(KotlinTestUtils.getAnnotationsJar()),
|
||||
Collections.emptyList(), Collections.singletonList(testFile)
|
||||
);
|
||||
|
||||
@@ -120,7 +120,7 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest
|
||||
private ClassFileFactory compileB(@NotNull TestFile testFile, List<TestFile> files) {
|
||||
String commonHeader = StringsKt.substringBefore(files.get(0).content, "FILE:", "");
|
||||
CompilerConfiguration configuration = createConfiguration(
|
||||
ConfigurationKind.ALL, getJdkKind(files), Lists.newArrayList(KotlinTestUtils.getAnnotationsJar(), aDir),
|
||||
ConfigurationKind.ALL, getTestJdkKind(files), Lists.newArrayList(KotlinTestUtils.getAnnotationsJar(), aDir),
|
||||
Collections.emptyList(), Lists.newArrayList(testFile, new TestFile("header", commonHeader))
|
||||
);
|
||||
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@ abstract class AbstractLightAnalysisModeTest : CodegenTestCase() {
|
||||
assert(!relativePath.startsWith(".."))
|
||||
|
||||
val configuration = createConfiguration(
|
||||
configurationKind, getJdkKind(files), listOf(getAnnotationsJar()), listOfNotNull(writeJavaFiles(files)), files
|
||||
configurationKind, getTestJdkKind(files), listOf(getAnnotationsJar()), listOfNotNull(writeJavaFiles(files)), files
|
||||
)
|
||||
val environment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||
AnalysisHandlerExtension.registerExtension(environment.project, PartialAnalysisHandlerExtension())
|
||||
|
||||
@@ -97,16 +97,6 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
|
||||
createEnvironmentWithMockJdkAndIdeaAnnotations(configurationKind, Collections.emptyList(), TestJdkKind.MOCK_JDK, javaSourceRoots);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
protected static TestJdkKind getJdkKind(@NotNull List<TestFile> files) {
|
||||
for (TestFile file : files) {
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "FULL_JDK")) {
|
||||
return TestJdkKind.FULL_JDK;
|
||||
}
|
||||
}
|
||||
return TestJdkKind.MOCK_JDK;
|
||||
}
|
||||
|
||||
protected final void createEnvironmentWithMockJdkAndIdeaAnnotations(
|
||||
@NotNull ConfigurationKind configurationKind,
|
||||
@NotNull List<TestFile> testFilesWithConfigurationDirectives,
|
||||
@@ -699,7 +689,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest<KotlinBaseTest.Test
|
||||
}
|
||||
|
||||
CompilerConfiguration configuration = createConfiguration(
|
||||
configurationKind, getJdkKind(files),
|
||||
configurationKind, getTestJdkKind(files),
|
||||
classpath,
|
||||
ArraysKt.filterNotNull(new File[] {javaSourceDir}),
|
||||
files
|
||||
|
||||
@@ -48,7 +48,7 @@ abstract class AbstractIrGeneratorTestCase : CodegenTestCase() {
|
||||
}
|
||||
|
||||
private fun setupEnvironment(files: List<TestFile>) {
|
||||
val jdkKind = getJdkKind(files)
|
||||
val jdkKind = getTestJdkKind(files)
|
||||
|
||||
val javacOptions = ArrayList<String>(0)
|
||||
var addRuntime = false
|
||||
|
||||
@@ -46,6 +46,15 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
|
||||
throw UnsupportedOperationException("Multi-file test cases are not supported in this test")
|
||||
}
|
||||
|
||||
protected open fun getTestJdkKind(files: List<F>): TestJdkKind {
|
||||
for (file in files) {
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(file.content, "FULL_JDK")) {
|
||||
return TestJdkKind.FULL_JDK
|
||||
}
|
||||
}
|
||||
return TestJdkKind.MOCK_JDK
|
||||
}
|
||||
|
||||
open class TestFile(@JvmField val name: String, @JvmField val content: String) : Comparable<TestFile> {
|
||||
override operator fun compareTo(other: TestFile): Int {
|
||||
return name.compareTo(other.name)
|
||||
|
||||
@@ -27,7 +27,7 @@ abstract class AbstractVisualizer : KotlinMultiFileTestWithJava<KotlinBaseTest.T
|
||||
|
||||
|
||||
override fun doMultiFileTest(file: File, files: List<TestFile>) {
|
||||
val environment = createEnvironment(file)
|
||||
val environment = createEnvironment(file, files)
|
||||
doVisualizerTest(file, environment)
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ abstract class AbstractVisualizer : KotlinMultiFileTestWithJava<KotlinBaseTest.T
|
||||
return true
|
||||
}
|
||||
|
||||
override fun getTestJdkKind(file: File): TestJdkKind {
|
||||
override fun getTestJdkKind(testFiles: MutableList<TestFile>): TestJdkKind {
|
||||
return TestJdkKind.FULL_JDK
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user