[FIR] Generate PSI and LT versions of all codegen tests
Also change default mode for codegen tests from PSI to LT
This commit is contained in:
committed by
Space Team
parent
5305e987b7
commit
a7f62581a2
+12
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.test.builders.configureClassicFrontendHandlersStep
|
||||
import org.jetbrains.kotlin.test.builders.configureFirHandlersStep
|
||||
import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.AsmLikeInstructionListingDirectives.CHECK_ASM_LIKE_INSTRUCTIONS
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
@@ -99,7 +100,7 @@ open class AbstractIrAsmLikeInstructionListingTest :
|
||||
get() = ::JvmIrBackendFacade
|
||||
}
|
||||
|
||||
open class AbstractFirAsmLikeInstructionListingTest :
|
||||
abstract class AbstractFirAsmLikeInstructionListingTestBase(val useLightTree: Boolean) :
|
||||
AbstractAsmLikeInstructionListingTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
FrontendKinds.FIR,
|
||||
TargetBackend.JVM_IR
|
||||
@@ -113,5 +114,15 @@ open class AbstractFirAsmLikeInstructionListingTest :
|
||||
|
||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||
get() = ::JvmIrBackendFacade
|
||||
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
if (useLightTree) {
|
||||
builder.defaultDirectives { +USE_LIGHT_TREE }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirAsmLikeInstructionListingTest : AbstractFirAsmLikeInstructionListingTestBase(useLightTree = true)
|
||||
|
||||
|
||||
|
||||
+2
-5
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.test.runners.codegen
|
||||
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
|
||||
open class AbstractBlackBoxInlineCodegenTest : AbstractBlackBoxCodegenTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
@@ -29,14 +28,12 @@ open class AbstractFirBlackBoxInlineCodegenTest : AbstractFirBlackBoxCodegenTest
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirLightTreeBlackBoxInlineCodegenTest : AbstractFirBlackBoxCodegenTest() {
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiBlackBoxInlineCodegenTest : AbstractFirPsiBlackBoxCodegenTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
useInlineHandlers()
|
||||
defaultDirectives {
|
||||
+FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+18
-3
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
|
||||
import org.jetbrains.kotlin.test.frontend.classic.*
|
||||
@@ -80,9 +81,11 @@ open class AbstractIrBytecodeListingTest : AbstractBytecodeListingTestBase<Class
|
||||
get() = ::JvmIrBackendFacade
|
||||
}
|
||||
|
||||
open class AbstractFirBytecodeListingTest : AbstractBytecodeListingTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
TargetBackend.JVM_IR, FrontendKinds.FIR
|
||||
) {
|
||||
abstract class AbstractFirBytecodeListingTestBase(val useLightTree: Boolean) :
|
||||
AbstractBytecodeListingTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
TargetBackend.JVM_IR,
|
||||
FrontendKinds.FIR
|
||||
) {
|
||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||
get() = ::FirFrontendFacade
|
||||
|
||||
@@ -91,4 +94,16 @@ open class AbstractFirBytecodeListingTest : AbstractBytecodeListingTestBase<FirO
|
||||
|
||||
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
|
||||
get() = ::JvmIrBackendFacade
|
||||
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
if (useLightTree) {
|
||||
builder.defaultDirectives { +FirDiagnosticsDirectives.USE_LIGHT_TREE }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirBytecodeListingTest : AbstractFirBytecodeListingTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiBytecodeListingTest : AbstractFirBytecodeListingTestBase(useLightTree = false)
|
||||
|
||||
+10
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_REFLECT
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
@@ -82,7 +83,7 @@ open class AbstractIrBytecodeTextTest : AbstractBytecodeTextTestBase<ClassicFron
|
||||
get() = ::JvmIrBackendFacade
|
||||
}
|
||||
|
||||
open class AbstractFirBytecodeTextTest : AbstractBytecodeTextTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
open class AbstractFirBytecodeTextTestBase(val useLightTree: Boolean) : AbstractBytecodeTextTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
targetBackend = TargetBackend.JVM_IR,
|
||||
targetFrontend = FrontendKinds.FIR
|
||||
) {
|
||||
@@ -101,7 +102,15 @@ open class AbstractFirBytecodeTextTest : AbstractBytecodeTextTestBase<FirOutputA
|
||||
defaultDirectives {
|
||||
// See KT-44152
|
||||
-USE_PSI_CLASS_FILES_READING
|
||||
if (useLightTree) {
|
||||
+FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirBytecodeTextTest : AbstractFirBytecodeTextTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiBytecodeTextTest : AbstractFirBytecodeTextTestBase(useLightTree = false)
|
||||
|
||||
+12
-1
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.configureIrHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND_K2_MULTI_MODULE
|
||||
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_BACKEND_MULTI_MODULE
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.SERIALIZE_IR
|
||||
import org.jetbrains.kotlin.test.directives.model.ValueDirective
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
@@ -102,7 +103,7 @@ open class AbstractIrSerializeCompileKotlinAgainstInlineKotlinTest : AbstractIrC
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirSerializeCompileKotlinAgainstInlineKotlinTest :
|
||||
open class AbstractFirSerializeCompileKotlinAgainstInlineKotlinTestBase(val useLightTree: Boolean) :
|
||||
AbstractCompileKotlinAgainstInlineKotlinTestBase<FirOutputArtifact, IrBackendInput>(FrontendKinds.FIR, TargetBackend.JVM_IR_SERIALIZE) {
|
||||
|
||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||
@@ -119,5 +120,15 @@ open class AbstractFirSerializeCompileKotlinAgainstInlineKotlinTest :
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureForSerialization()
|
||||
if (useLightTree) {
|
||||
builder.defaultDirectives { +FirDiagnosticsDirectives.USE_LIGHT_TREE }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirSerializeCompileKotlinAgainstInlineKotlinTest :
|
||||
AbstractFirSerializeCompileKotlinAgainstInlineKotlinTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiSerializeCompileKotlinAgainstInlineKotlinTest :
|
||||
AbstractFirSerializeCompileKotlinAgainstInlineKotlinTestBase(useLightTree = false)
|
||||
|
||||
+12
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.builders.configureFirHandlersStep
|
||||
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
@@ -24,7 +25,9 @@ import org.jetbrains.kotlin.test.frontend.fir.handlers.FirResolvedTypesVerifier
|
||||
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirScopeDumpHandler
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
|
||||
open class AbstractFirBlackBoxCodegenTest : AbstractJvmBlackBoxCodegenTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
abstract class AbstractFirBlackBoxCodegenTestBase(
|
||||
val useLightTree: Boolean
|
||||
) : AbstractJvmBlackBoxCodegenTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
FrontendKinds.FIR,
|
||||
TargetBackend.JVM_IR
|
||||
) {
|
||||
@@ -43,6 +46,9 @@ open class AbstractFirBlackBoxCodegenTest : AbstractJvmBlackBoxCodegenTestBase<F
|
||||
defaultDirectives {
|
||||
// See KT-44152
|
||||
-USE_PSI_CLASS_FILES_READING
|
||||
if (useLightTree) {
|
||||
+USE_LIGHT_TREE
|
||||
}
|
||||
}
|
||||
|
||||
forTestsMatching("*WithStdLib/*") {
|
||||
@@ -77,3 +83,8 @@ open class AbstractFirBlackBoxCodegenTest : AbstractJvmBlackBoxCodegenTestBase<F
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirBlackBoxCodegenTest : AbstractFirBlackBoxCodegenTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiBlackBoxCodegenTest : AbstractFirBlackBoxCodegenTestBase(useLightTree = false)
|
||||
|
||||
+10
-1
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.test.backend.classic.ClassicJvmBackendFacade
|
||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
@@ -60,7 +61,7 @@ open class AbstractLocalVariableTest : AbstractLocalVariableTestBase<ClassicFron
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirLocalVariableTest : AbstractLocalVariableTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
open class AbstractFirLocalVariableTestBase(val useLightTree: Boolean) : AbstractLocalVariableTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
FrontendKinds.FIR,
|
||||
TargetBackend.JVM_IR
|
||||
) {
|
||||
@@ -76,5 +77,13 @@ open class AbstractFirLocalVariableTest : AbstractLocalVariableTestBase<FirOutpu
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureDumpHandlersForCodegenTest()
|
||||
if (useLightTree) {
|
||||
builder.defaultDirectives { +FirDiagnosticsDirectives.USE_LIGHT_TREE }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirLocalVariableTest : AbstractFirLocalVariableTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiLocalVariableTest : AbstractFirLocalVariableTestBase(useLightTree = false)
|
||||
|
||||
+10
-1
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.test.backend.classic.ClassicJvmBackendFacade
|
||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2ClassicBackendConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
|
||||
@@ -60,7 +61,7 @@ open class AbstractSteppingTest : AbstractSteppingTestBase<ClassicFrontendOutput
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirSteppingTest : AbstractSteppingTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
open class AbstractFirSteppingTestBase(val useLightTree: Boolean) : AbstractSteppingTestBase<FirOutputArtifact, IrBackendInput>(
|
||||
FrontendKinds.FIR,
|
||||
TargetBackend.JVM_IR
|
||||
) {
|
||||
@@ -76,5 +77,13 @@ open class AbstractFirSteppingTest : AbstractSteppingTestBase<FirOutputArtifact,
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureDumpHandlersForCodegenTest()
|
||||
if (useLightTree) {
|
||||
builder.defaultDirectives { +FirDiagnosticsDirectives.USE_LIGHT_TREE }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFirSteppingTest : AbstractFirSteppingTestBase(useLightTree = true)
|
||||
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsiSteppingTest : AbstractFirSteppingTestBase(useLightTree = false)
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* 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.test.runners.codegen
|
||||
|
||||
import org.junit.jupiter.api.Tag
|
||||
|
||||
/**
|
||||
* Default mode for FIR compiler uses light tree, so all regular tests should specify it
|
||||
* To ensure that PSI mode works as well each codegen test should have PSI counterpart
|
||||
* with this annotation.
|
||||
* Annotation excludes test class from regular aggregate test suite and adds it to nightly build
|
||||
*/
|
||||
@Tag("FirPsiCodegenTest")
|
||||
annotation class FirPsiCodegenTest
|
||||
+15
-12
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade
|
||||
import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
|
||||
import org.jetbrains.kotlin.test.runners.codegen.FirPsiCodegenTest
|
||||
import org.jetbrains.kotlin.test.services.JsLibraryProvider
|
||||
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JsEnvironmentConfigurator
|
||||
@@ -115,7 +116,7 @@ open class AbstractIrTextTest : AbstractIrTextTestBase<ClassicFrontendOutputArti
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFir2IrTextTest : AbstractIrTextTestBase<FirOutputArtifact>() {
|
||||
open class AbstractFir2IrTextTestBase(val useLightTree: Boolean) : AbstractIrTextTestBase<FirOutputArtifact>() {
|
||||
override val frontend: FrontendKind<*>
|
||||
get() = FrontendKinds.FIR
|
||||
override val frontendFacade: Constructor<FrontendFacade<FirOutputArtifact>>
|
||||
@@ -126,6 +127,12 @@ open class AbstractFir2IrTextTest : AbstractIrTextTestBase<FirOutputArtifact>()
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
if (useLightTree) {
|
||||
defaultDirectives {
|
||||
+FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
}
|
||||
}
|
||||
|
||||
useAfterAnalysisCheckers(
|
||||
::FirIrDumpIdenticalChecker,
|
||||
::BlackBoxCodegenSuppressor
|
||||
@@ -140,18 +147,12 @@ open class AbstractFir2IrTextTest : AbstractIrTextTestBase<FirOutputArtifact>()
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractLightTreeFir2IrTextTest : AbstractFir2IrTextTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
with (builder) {
|
||||
defaultDirectives {
|
||||
+FirDiagnosticsDirectives.USE_LIGHT_TREE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
open class AbstractFir2IrTextTest : AbstractFir2IrTextTestBase(useLightTree = true)
|
||||
|
||||
open class AbstractFir2IrJsTextTest : AbstractFir2IrTextTest() {
|
||||
@FirPsiCodegenTest
|
||||
open class AbstractFirPsi2IrTextTest : AbstractFir2IrTextTestBase(useLightTree = false)
|
||||
|
||||
open class AbstractFir2IrJsTextTestBase(useLightTree: Boolean) : AbstractFir2IrTextTestBase(useLightTree) {
|
||||
override fun TestConfigurationBuilder.applyConfigurators() {
|
||||
useConfigurators(
|
||||
::CommonEnvironmentConfigurator,
|
||||
@@ -173,3 +174,5 @@ open class AbstractFir2IrJsTextTest : AbstractFir2IrTextTest() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
open class AbstractFir2IrJsTextTest : AbstractFir2IrJsTextTestBase(useLightTree = true)
|
||||
|
||||
Reference in New Issue
Block a user