From f54453950ee42c6aefe155979f61cfadfcf314ad Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 31 Jan 2023 19:27:06 +0100 Subject: [PATCH] Modularized tests. Extract common class for FE1/FIR tests ^KT-56075 --- .../fir/AbstractFrontendModularizedTest.kt | 38 +++++++++++++++++++ .../kotlin/fir/AbstractModularizedTest.kt | 29 -------------- .../FirResolveModularizedTotalKotlinTest.kt | 2 +- ...NonFirResolveModularizedTotalKotlinTest.kt | 2 +- 4 files changed, 40 insertions(+), 31 deletions(-) create mode 100644 compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFrontendModularizedTest.kt diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFrontendModularizedTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFrontendModularizedTest.kt new file mode 100644 index 00000000000..f5e9369b89e --- /dev/null +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractFrontendModularizedTest.kt @@ -0,0 +1,38 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir + +import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys +import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot +import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot +import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots +import org.jetbrains.kotlin.cli.jvm.config.configureJdkClasspathRoots +import org.jetbrains.kotlin.config.* +import org.jetbrains.kotlin.test.KotlinTestUtils + +abstract class AbstractFrontendModularizedTest : AbstractModularizedTest() { + fun createDefaultConfiguration(moduleData: ModuleData): CompilerConfiguration { + val configuration = KotlinTestUtils.newConfiguration() + moduleData.javaSourceRoots.forEach { + configuration.addJavaSourceRoot(it.path, it.packagePrefix) + } + configuration.addJvmClasspathRoots(moduleData.classpath) + configuration.languageVersionSettings = LanguageVersionSettingsImpl( + LanguageVersion.LATEST_STABLE, + ApiVersion.LATEST_STABLE, + analysisFlags = mutableMapOf(AnalysisFlags.optIn to moduleData.optInAnnotations) + ) + configuration.configureJdkClasspathRoots() + + // in case of modular jdk only + configuration.putIfNotNull(JVMConfigurationKeys.JDK_HOME, moduleData.modularJdkRoot) + + configuration.addAll( + CLIConfigurationKeys.CONTENT_ROOTS, + moduleData.sources.filter { it.extension == "kt" || it.isDirectory }.map { KotlinSourceRoot(it.absolutePath, false) }) + return configuration + } +} \ No newline at end of file diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt index 4dcef7c913d..a7ff75390a9 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/AbstractModularizedTest.kt @@ -5,14 +5,7 @@ package org.jetbrains.kotlin.fir -import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys -import org.jetbrains.kotlin.cli.common.config.KotlinSourceRoot -import org.jetbrains.kotlin.cli.jvm.config.configureJdkClasspathRoots -import org.jetbrains.kotlin.cli.jvm.config.addJavaSourceRoot -import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots -import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.fir.scopes.ProcessorAction -import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase import org.jetbrains.kotlin.types.AbstractTypeChecker import org.w3c.dom.Node @@ -96,28 +89,6 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() { AbstractTypeChecker.RUN_SLOW_ASSERTIONS = true } - fun createDefaultConfiguration(moduleData: ModuleData): CompilerConfiguration { - val configuration = KotlinTestUtils.newConfiguration() - moduleData.javaSourceRoots.forEach { - configuration.addJavaSourceRoot(it.path, it.packagePrefix) - } - configuration.addJvmClasspathRoots(moduleData.classpath) - configuration.languageVersionSettings = LanguageVersionSettingsImpl( - LanguageVersion.LATEST_STABLE, - ApiVersion.LATEST_STABLE, - analysisFlags = mutableMapOf(AnalysisFlags.optIn to moduleData.optInAnnotations) - ) - configuration.configureJdkClasspathRoots() - - // in case of modular jdk only - configuration.putIfNotNull(JVMConfigurationKeys.JDK_HOME, moduleData.modularJdkRoot) - - configuration.addAll( - CLIConfigurationKeys.CONTENT_ROOTS, - moduleData.sources.filter { it.extension == "kt" || it.isDirectory }.map { KotlinSourceRoot(it.absolutePath, false) }) - return configuration - } - private fun loadModule(file: File): ModuleData { val factory = DocumentBuilderFactory.newInstance() diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt index 7067008f25e..5d717279422 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/FirResolveModularizedTotalKotlinTest.kt @@ -112,7 +112,7 @@ class PassEventReporter(private val stream: PrintStream) : AutoCloseable { } } -class FirResolveModularizedTotalKotlinTest : AbstractModularizedTest() { +class FirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest() { private lateinit var dump: MultiModuleHtmlFirDump private lateinit var bench: FirResolveBench diff --git a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt index 7e4939fac81..966cca37f2b 100644 --- a/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt +++ b/compiler/fir/modularized-tests/tests/org/jetbrains/kotlin/fir/NonFirResolveModularizedTotalKotlinTest.kt @@ -22,7 +22,7 @@ import kotlin.system.measureNanoTime private val USE_NI = System.getProperty("fir.bench.oldfe.ni", "true") == "true" -class NonFirResolveModularizedTotalKotlinTest : AbstractModularizedTest() { +class NonFirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest() { private var totalTime = 0L private var files = 0 private var lines = 0