[Tests] Enforce FIR_IDENTICAL for Fir tests with IrTextDumpHandler
^KT-64256 Fixed
This commit is contained in:
committed by
Space Team
parent
cbf21acede
commit
ec3dd43edc
+3
@@ -6,6 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.test.backend.handlers
|
package org.jetbrains.kotlin.test.backend.handlers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.test.WrappedException
|
import org.jetbrains.kotlin.test.WrappedException
|
||||||
|
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_IR
|
||||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
|
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
|
||||||
@@ -43,6 +44,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 (DUMP_IR !in testServices.moduleStructure.allDirectives)
|
||||||
|
return
|
||||||
if (FIR_IDENTICAL in testServices.moduleStructure.allDirectives) {
|
if (FIR_IDENTICAL in testServices.moduleStructure.allDirectives) {
|
||||||
simpleDumpChecker.deleteFirFile(testDataFile)
|
simpleDumpChecker.deleteFirFile(testDataFile)
|
||||||
prettyDumpChecker.deleteFirFile(testDataFile)
|
prettyDumpChecker.deleteFirFile(testDataFile)
|
||||||
|
|||||||
+1
-1
@@ -71,7 +71,7 @@ abstract class AbstractFirBlackBoxCodegenTestBase(
|
|||||||
::FirMetaInfoDiffSuppressor
|
::FirMetaInfoDiffSuppressor
|
||||||
)
|
)
|
||||||
|
|
||||||
configureDumpHandlersForCodegenTest()
|
configureDumpHandlersForCodegenTest(isFir = true)
|
||||||
|
|
||||||
baseFirBlackBoxCodegenTestDirectivesConfiguration()
|
baseFirBlackBoxCodegenTestDirectivesConfiguration()
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -71,6 +71,9 @@ open class AbstractFirScriptCodegenTest : AbstractKotlinCompilerWithTargetBacken
|
|||||||
useHandlers(
|
useHandlers(
|
||||||
::FirDiagnosticsHandler
|
::FirDiagnosticsHandler
|
||||||
)
|
)
|
||||||
|
useAfterAnalysisCheckers(
|
||||||
|
::FirIrDumpIdenticalChecker,
|
||||||
|
)
|
||||||
commonFirHandlersForCodegenTest()
|
commonFirHandlersForCodegenTest()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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()
|
builder.configureDumpHandlersForCodegenTest(isFir = true)
|
||||||
builder.configureFirParser(parser)
|
builder.configureFirParser(parser)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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()
|
builder.configureDumpHandlersForCodegenTest(isFir = true)
|
||||||
builder.configureFirParser(parser)
|
builder.configureFirParser(parser)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -105,9 +105,11 @@ fun TestConfigurationBuilder.applyDumpSmapDirective() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun TestConfigurationBuilder.configureDumpHandlersForCodegenTest() {
|
fun TestConfigurationBuilder.configureDumpHandlersForCodegenTest(isFir: Boolean = false) {
|
||||||
configureIrHandlersStep {
|
configureIrHandlersStep {
|
||||||
dumpHandlersForConverterStep()
|
dumpHandlersForConverterStep()
|
||||||
|
if (isFir)
|
||||||
|
useAfterAnalysisCheckers(::FirIrDumpIdenticalChecker)
|
||||||
}
|
}
|
||||||
configureJvmArtifactsHandlersStep {
|
configureJvmArtifactsHandlersStep {
|
||||||
dumpHandlersForBackendStep()
|
dumpHandlersForBackendStep()
|
||||||
|
|||||||
+2
-1
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.test.Constructor
|
|||||||
import org.jetbrains.kotlin.test.FirParser
|
import org.jetbrains.kotlin.test.FirParser
|
||||||
import org.jetbrains.kotlin.test.TargetBackend
|
import org.jetbrains.kotlin.test.TargetBackend
|
||||||
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
|
import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor
|
||||||
|
import org.jetbrains.kotlin.test.backend.handlers.FirIrDumpIdenticalChecker
|
||||||
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
|
import org.jetbrains.kotlin.test.backend.handlers.IrTextDumpHandler
|
||||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||||
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
|
||||||
@@ -81,7 +82,7 @@ abstract class AbstractParcelizeBoxTestBase<R : ResultingArtifact.FrontendOutput
|
|||||||
|
|
||||||
useAdditionalServices(service<JvmBoxMainClassProvider>(::ParcelizeMainClassProvider))
|
useAdditionalServices(service<JvmBoxMainClassProvider>(::ParcelizeMainClassProvider))
|
||||||
|
|
||||||
useAfterAnalysisCheckers(::BlackBoxCodegenSuppressor)
|
useAfterAnalysisCheckers(::BlackBoxCodegenSuppressor, ::FirIrDumpIdenticalChecker)
|
||||||
|
|
||||||
enableMetaInfoHandler()
|
enableMetaInfoHandler()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user