[Tests] FIR support in JUnit 3 tests, port necessary subclasses
^KT-64404 Fixed ^KT-64438 Fixed ^KT-64407 Fixed
This commit is contained in:
committed by
Space Team
parent
e69d6d2d05
commit
9a2e4c6b41
@@ -9,11 +9,12 @@ import org.jetbrains.kotlin.checkers.ENABLE_JVM_PREVIEW
|
||||
import org.jetbrains.kotlin.checkers.parseLanguageVersionSettings
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.test.testFramework.FrontendBackendConfiguration
|
||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||
import java.io.File
|
||||
|
||||
abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase() {
|
||||
abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase(), FrontendBackendConfiguration {
|
||||
@Throws(Exception::class)
|
||||
override fun setUp() {
|
||||
super.setUp()
|
||||
@@ -51,26 +52,25 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
|
||||
return Companion.extractConfigurationKind(files)
|
||||
}
|
||||
|
||||
protected open fun updateConfiguration(configuration: CompilerConfiguration) {}
|
||||
protected open fun updateConfiguration(configuration: CompilerConfiguration) {
|
||||
configureIrFir(configuration)
|
||||
}
|
||||
|
||||
protected open fun setupEnvironment(environment: KotlinCoreEnvironment) {}
|
||||
|
||||
protected open fun parseDirectivesPerFiles() = false
|
||||
|
||||
protected open val backend = TargetBackend.ANY
|
||||
|
||||
protected open fun configureTestSpecific(configuration: CompilerConfiguration, testFiles: List<TestFile>) {}
|
||||
|
||||
protected fun createConfiguration(
|
||||
kind: ConfigurationKind,
|
||||
jdkKind: TestJdkKind,
|
||||
backend: TargetBackend,
|
||||
classpath: List<File?>,
|
||||
javaSource: List<File?>,
|
||||
testFilesWithConfigurationDirectives: List<TestFile>
|
||||
): CompilerConfiguration {
|
||||
val configuration = KotlinTestUtils.newConfiguration(kind, jdkKind, classpath, javaSource)
|
||||
configuration.put(JVMConfigurationKeys.IR, backend.isIR)
|
||||
updateConfigurationByDirectivesInTestFiles(
|
||||
testFilesWithConfigurationDirectives,
|
||||
configuration,
|
||||
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2010-2024 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.test.testFramework
|
||||
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.test.FirParser
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
|
||||
interface FrontendBackendConfiguration {
|
||||
val useFir: Boolean
|
||||
get() = false
|
||||
val firParser: FirParser
|
||||
get() = FirParser.Psi
|
||||
val backend
|
||||
get() = TargetBackend.ANY
|
||||
|
||||
fun configureIrFir(configuration: CompilerConfiguration) {
|
||||
configuration.put(JVMConfigurationKeys.IR, backend.isIR)
|
||||
configuration.put(CommonConfigurationKeys.USE_FIR, useFir)
|
||||
when (firParser) {
|
||||
FirParser.LightTree -> configuration.put(CommonConfigurationKeys.USE_LIGHT_TREE, true)
|
||||
FirParser.Psi -> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user