From 999b762288aed814142ff4d2057069cdc2d85cce Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Tue, 25 Feb 2020 11:32:41 +0100 Subject: [PATCH] Merge 'getTestJdkKind' and 'getJdkKind' and move to base class --- .../tests/CodegenTestsOnAndroidGenerator.kt | 2 +- .../fir/AbstractFirResolveTestCaseWithStdlib.kt | 3 +-- .../ir/AbstractIrCompileKotlinAgainstKlibTest.kt | 4 +--- .../asJava/AbstractCompilerLightClassTest.kt | 2 +- ...AbstractDiagnosticsWithModifiedMockJdkTest.java | 4 ++-- .../checkers/AbstractDiagnosticsWithJdk9Test.java | 4 ++-- .../checkers/AbstractForeignAnnotationsTest.kt | 2 +- .../kotlin/checkers/BaseDiagnosticsTest.kt | 2 +- .../checkers/KotlinMultiFileTestWithJava.java | 14 +++++--------- .../AbstractCompileKotlinAgainstKotlinTest.java | 4 ++-- .../codegen/AbstractLightAnalysisModeTest.kt | 2 +- .../jetbrains/kotlin/codegen/CodegenTestCase.java | 12 +----------- .../kotlin/ir/AbstractIrGeneratorTestCase.kt | 2 +- .../org/jetbrains/kotlin/test/KotlinBaseTest.kt | 9 +++++++++ .../kotlin/visualizer/AbstractVisualizer.kt | 4 ++-- 15 files changed, 31 insertions(+), 39 deletions(-) diff --git a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt index 684223cb2bb..bcb6443e111 100644 --- a/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt +++ b/compiler/android-tests/tests/org/jetbrains/kotlin/android/tests/CodegenTestsOnAndroidGenerator.kt @@ -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) diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/AbstractFirResolveTestCaseWithStdlib.kt b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/AbstractFirResolveTestCaseWithStdlib.kt index 29a630ebc6c..1ac167441a6 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/AbstractFirResolveTestCaseWithStdlib.kt +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/AbstractFirResolveTestCaseWithStdlib.kt @@ -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): TestJdkKind { return TestJdkKind.FULL_JDK } } \ No newline at end of file diff --git a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt index ff2a5dea9ab..098bac21871 100644 --- a/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt +++ b/compiler/tests-against-klib/tests/org/jetbrains/kotlin/codegen/ir/AbstractIrCompileKotlinAgainstKlibTest.kt @@ -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 = ArrayList() classpath.add(KotlinTestUtils.getAnnotationsJar()) val configuration = createConfiguration( - configurationKind, CodegenTestCase.getJdkKind(files), + configurationKind, getTestJdkKind(files), classpath, listOf(outputDir), files diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt index bbe314f2778..55eb88fc442 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/AbstractCompilerLightClassTest.kt @@ -36,7 +36,7 @@ abstract class AbstractCompilerLightClassTest : KotlinMultiFileTestWithJava) { - val environment = createEnvironment(file) + val environment = createEnvironment(file, files) val expectedFile = KotlinTestUtils.replaceExtension(file, "java") val allowFrontendExceptions = InTextDirectivesUtils.isDirectiveDefined(file.readText(), "// ALLOW_FRONTEND_EXCEPTION") diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/cfg/AbstractDiagnosticsWithModifiedMockJdkTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/cfg/AbstractDiagnosticsWithModifiedMockJdkTest.java index 2991d9da4ad..b079385b083 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/cfg/AbstractDiagnosticsWithModifiedMockJdkTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/cfg/AbstractDiagnosticsWithModifiedMockJdkTest.java @@ -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 testFiles) { return TestJdkKind.MODIFIED_MOCK_JDK; } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsWithJdk9Test.java b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsWithJdk9Test.java index 374343dfd7e..5fb622c0330 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsWithJdk9Test.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsWithJdk9Test.java @@ -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 testFiles) { return TestJdkKind.FULL_JDK_9; } } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt index 24068cfa9a5..73f6ddbd25b 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractForeignAnnotationsTest.kt @@ -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): TestJdkKind = TestJdkKind.FULL_JDK open protected val annotationsPath: String get() = FOREIGN_ANNOTATIONS_SOURCES_PATH diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt index c8c21547d89..2ede54997a3 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/BaseDiagnosticsTest.kt @@ -91,7 +91,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava ) { - 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") diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java index 30adfc20d8a..bf9abb61614 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java @@ -63,10 +63,13 @@ public abstract class KotlinMultiFileTestWithJava 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 getClasspath(File file) { List result = new ArrayList<>(); result.add(KotlinTestUtils.getAnnotationsJar()); diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCompileKotlinAgainstKotlinTest.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCompileKotlinAgainstKotlinTest.java index 821370f1d5f..7b77de463b7 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCompileKotlinAgainstKotlinTest.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractCompileKotlinAgainstKotlinTest.java @@ -98,7 +98,7 @@ public abstract class AbstractCompileKotlinAgainstKotlinTest extends CodegenTest private ClassFileFactory compileA(@NotNull TestFile testFile, List 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 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)) ); diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt index 1784ab8aa91..d59264c439a 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/AbstractLightAnalysisModeTest.kt @@ -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()) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java index f9ae83794ef..dcc12bb9f22 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -97,16 +97,6 @@ public abstract class CodegenTestCase extends KotlinBaseTest 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 testFilesWithConfigurationDirectives, @@ -699,7 +689,7 @@ public abstract class CodegenTestCase extends KotlinBaseTest) { - val jdkKind = getJdkKind(files) + val jdkKind = getTestJdkKind(files) val javacOptions = ArrayList(0) var addRuntime = false diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinBaseTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinBaseTest.kt index ba86e8073fa..ab7a6344aa3 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinBaseTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/KotlinBaseTest.kt @@ -46,6 +46,15 @@ abstract class KotlinBaseTest : KtUsefulTestCase() throw UnsupportedOperationException("Multi-file test cases are not supported in this test") } + protected open fun getTestJdkKind(files: List): 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 { override operator fun compareTo(other: TestFile): Int { return name.compareTo(other.name) diff --git a/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizer.kt b/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizer.kt index 94c95b04e74..dd20df03313 100644 --- a/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizer.kt +++ b/compiler/visualizer/tests/org/jetbrains/kotlin/visualizer/AbstractVisualizer.kt @@ -27,7 +27,7 @@ abstract class AbstractVisualizer : KotlinMultiFileTestWithJava) { - val environment = createEnvironment(file) + val environment = createEnvironment(file, files) doVisualizerTest(file, environment) } @@ -37,7 +37,7 @@ abstract class AbstractVisualizer : KotlinMultiFileTestWithJava): TestJdkKind { return TestJdkKind.FULL_JDK }