[Tests] Detect frontend type within FirIrDumpIdenticalChecker

^KT-64256 Fixed
This commit is contained in:
Vladimir Sukharev
2023-12-13 19:06:31 +01:00
committed by Space Team
parent 82c5b745e2
commit 50f1ea79c5
5 changed files with 9 additions and 6 deletions
@@ -11,7 +11,9 @@ import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_IDENTICAL import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_IDENTICAL
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.defaultsProvider
import org.jetbrains.kotlin.test.services.moduleStructure import org.jetbrains.kotlin.test.services.moduleStructure
import org.jetbrains.kotlin.test.utils.FirIdenticalCheckerHelper import org.jetbrains.kotlin.test.utils.FirIdenticalCheckerHelper
import org.jetbrains.kotlin.test.utils.withExtension import org.jetbrains.kotlin.test.utils.withExtension
@@ -44,6 +46,8 @@ class FirIrDumpIdenticalChecker(testServices: TestServices) : AfterAnalysisCheck
override fun check(failedAssertions: List<WrappedException>) { override fun check(failedAssertions: List<WrappedException>) {
if (failedAssertions.isNotEmpty()) return if (failedAssertions.isNotEmpty()) return
val testDataFile = testServices.moduleStructure.originalTestDataFiles.first() val testDataFile = testServices.moduleStructure.originalTestDataFiles.first()
if (testServices.defaultsProvider.defaultFrontend != FrontendKinds.FIR)
return
if (DUMP_IR !in testServices.moduleStructure.allDirectives) if (DUMP_IR !in testServices.moduleStructure.allDirectives)
return return
if (FIR_IDENTICAL in testServices.moduleStructure.allDirectives) { if (FIR_IDENTICAL in testServices.moduleStructure.allDirectives) {
@@ -71,7 +71,7 @@ abstract class AbstractFirBlackBoxCodegenTestBase(
::FirMetaInfoDiffSuppressor ::FirMetaInfoDiffSuppressor
) )
configureDumpHandlersForCodegenTest(isFir = true) configureDumpHandlersForCodegenTest()
baseFirBlackBoxCodegenTestDirectivesConfiguration() baseFirBlackBoxCodegenTestDirectivesConfiguration()
} }
@@ -85,7 +85,7 @@ open class AbstractFirLocalVariableTestBase(val parser: FirParser) : AbstractLoc
override fun configure(builder: TestConfigurationBuilder) { override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder) super.configure(builder)
builder.configureDumpHandlersForCodegenTest(isFir = true) builder.configureDumpHandlersForCodegenTest()
builder.configureFirParser(parser) builder.configureFirParser(parser)
} }
} }
@@ -82,7 +82,7 @@ open class AbstractFirSteppingTestBase(val parser: FirParser) : AbstractStepping
override fun configure(builder: TestConfigurationBuilder) { override fun configure(builder: TestConfigurationBuilder) {
super.configure(builder) super.configure(builder)
builder.configureDumpHandlersForCodegenTest(isFir = true) builder.configureDumpHandlersForCodegenTest()
builder.configureFirParser(parser) builder.configureFirParser(parser)
} }
} }
@@ -105,11 +105,10 @@ fun TestConfigurationBuilder.applyDumpSmapDirective() {
} }
} }
fun TestConfigurationBuilder.configureDumpHandlersForCodegenTest(isFir: Boolean = false) { fun TestConfigurationBuilder.configureDumpHandlersForCodegenTest() {
configureIrHandlersStep { configureIrHandlersStep {
dumpHandlersForConverterStep() dumpHandlersForConverterStep()
if (isFir) useAfterAnalysisCheckers(::FirIrDumpIdenticalChecker)
useAfterAnalysisCheckers(::FirIrDumpIdenticalChecker)
} }
configureJvmArtifactsHandlersStep { configureJvmArtifactsHandlersStep {
dumpHandlersForBackendStep() dumpHandlersForBackendStep()