Modularized tests. Extract common class for FE1/FIR tests
^KT-56075
This commit is contained in:
committed by
Space Team
parent
52890ca601
commit
f54453950e
+38
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
-29
@@ -5,14 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir
|
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.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
|
||||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
|
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
|
||||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||||
import org.w3c.dom.Node
|
import org.w3c.dom.Node
|
||||||
@@ -96,28 +89,6 @@ abstract class AbstractModularizedTest : KtUsefulTestCase() {
|
|||||||
AbstractTypeChecker.RUN_SLOW_ASSERTIONS = true
|
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 {
|
private fun loadModule(file: File): ModuleData {
|
||||||
|
|
||||||
val factory = DocumentBuilderFactory.newInstance()
|
val factory = DocumentBuilderFactory.newInstance()
|
||||||
|
|||||||
+1
-1
@@ -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 dump: MultiModuleHtmlFirDump
|
||||||
private lateinit var bench: FirResolveBench
|
private lateinit var bench: FirResolveBench
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ import kotlin.system.measureNanoTime
|
|||||||
|
|
||||||
private val USE_NI = System.getProperty("fir.bench.oldfe.ni", "true") == "true"
|
private val USE_NI = System.getProperty("fir.bench.oldfe.ni", "true") == "true"
|
||||||
|
|
||||||
class NonFirResolveModularizedTotalKotlinTest : AbstractModularizedTest() {
|
class NonFirResolveModularizedTotalKotlinTest : AbstractFrontendModularizedTest() {
|
||||||
private var totalTime = 0L
|
private var totalTime = 0L
|
||||||
private var files = 0
|
private var files = 0
|
||||||
private var lines = 0
|
private var lines = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user