Modularized tests. Extract common class for FE1/FIR tests

^KT-56075
This commit is contained in:
Simon Ogorodnik
2023-01-31 19:27:06 +01:00
committed by Space Team
parent 52890ca601
commit f54453950e
4 changed files with 40 additions and 31 deletions
@@ -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
}
}
@@ -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()
@@ -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
@@ -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