@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigu
4444import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
4545import org.jetbrains.kotlin.test.services.moduleStructure
4646import org.jetbrains.kotlin.test.utils.MultiModuleInfoDumper
47+ import org.jetbrains.kotlin.utils.bind
4748import org.junit.jupiter.api.Assumptions.assumeTrue
4849import org.junit.jupiter.api.Tag
4950import java.io.File
@@ -58,7 +59,24 @@ import java.io.File
5859 * indirectly asserts that the generated klib is "identical" across these hosts
5960 */
6061@Tag(" klib" )
61- open class AbstractFirKlibCrossCompilationIdentityTest : AbstractKotlinCompilerWithTargetBackendTest (TargetBackend .NATIVE ) {
62+ open class AbstractFirKlibCrossCompilationIdentityTest : AbstractFirKlibCrossCompilationIdentityTestBase (" " )
63+ @Tag(" klib" )
64+ open class AbstractFirKlibCrossCompilationIdentityWithPreSerializationLoweringTest :
65+ AbstractFirKlibCrossCompilationIdentityTestBase (" .lowered" ) {
66+
67+ override fun configure (builder : TestConfigurationBuilder ) {
68+ super .configure(builder)
69+ with (builder) {
70+ defaultDirectives {
71+ LANGUAGE with " +${LanguageFeature .IrInlinerBeforeKlibSerialization .name} "
72+ }
73+ }
74+ }
75+ }
76+
77+ open class AbstractFirKlibCrossCompilationIdentityTestBase (val irFileSuffix : String = " " ) :
78+ AbstractKotlinCompilerWithTargetBackendTest (TargetBackend .NATIVE ) {
79+
6280 override fun configure (builder : TestConfigurationBuilder ) = with (builder) {
6381 globalDefaults {
6482 frontend = FrontendKinds .FIR
@@ -82,7 +100,7 @@ open class AbstractFirKlibCrossCompilationIdentityTest : AbstractKotlinCompilerW
82100
83101 DiagnosticsDirectives .DIAGNOSTICS with " -warnings"
84102
85- LANGUAGE with " + ${LanguageFeature .IrInlinerBeforeKlibSerialization .name} "
103+ LANGUAGE with " - ${LanguageFeature .IrInlinerBeforeKlibSerialization .name} "
86104 }
87105
88106 useAfterAnalysisCheckers(::BlackBoxCodegenSuppressor )
@@ -114,7 +132,7 @@ open class AbstractFirKlibCrossCompilationIdentityTest : AbstractKotlinCompilerW
114132 }
115133 facadeStep(::FirNativeKlibSerializerFacade )
116134 klibArtifactsHandlersStep {
117- useHandlers(::NativeKlibCrossCompilationIdentityHandler )
135+ useHandlers(::NativeKlibCrossCompilationIdentityHandler .bind(irFileSuffix) )
118136 }
119137 }
120138
@@ -132,7 +150,7 @@ open class AbstractFirKlibCrossCompilationIdentityTest : AbstractKotlinCompilerW
132150 }
133151}
134152
135- private class NativeKlibCrossCompilationIdentityHandler (testServices : TestServices ) : KlibArtifactHandler(testServices) {
153+ private class NativeKlibCrossCompilationIdentityHandler (testServices : TestServices , val irFileSuffix : String ) : KlibArtifactHandler(testServices) {
136154 private val metadataDumper = newDumper()
137155 private val irDumper = newDumper()
138156 private val manifestDumper = newDumper()
@@ -167,7 +185,7 @@ private class NativeKlibCrossCompilationIdentityHandler(testServices: TestServic
167185 assertions.assertAll(
168186 listOf (
169187 metadataDumper.checkGoldenData(goldenDataFileExtension = " metadata.txt" ),
170- irDumper.checkGoldenData(goldenDataFileExtension = " ir.txt" ),
188+ irDumper.checkGoldenData(goldenDataFileExtension = " ir$irFileSuffix .txt" ),
171189 manifestDumper.checkGoldenData(goldenDataFileExtension = " manifest" )
172190 )
173191 )
0 commit comments