Skip to content

Commit 41321d3

Browse files
vsukharevSpace Team
authored andcommitted
[Tests] Split test runners for CrossCompilationIdentityTest
^KT-72593 Fixed
1 parent 20b8389 commit 41321d3

File tree

10 files changed

+532
-54
lines changed

10 files changed

+532
-54
lines changed

native/native.tests/klib-ir-inliner/tests-gen/org/jetbrains/kotlin/konan/test/klib/FirKlibCrossCompilationIdentityWithPreSerializationLoweringTestGenerated.java

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

native/native.tests/klib-ir-inliner/tests/org/jetbrains/kotlin/generators/tests/GenerateKlibNativeTests.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.konan.test.inlining.AbstractNativeUnboundIrSerializa
2424
import org.jetbrains.kotlin.konan.test.irText.*
2525
import org.jetbrains.kotlin.konan.test.dump.*
2626
import org.jetbrains.kotlin.konan.test.klib.AbstractFirKlibCrossCompilationIdentityTest
27+
import org.jetbrains.kotlin.konan.test.klib.AbstractFirKlibCrossCompilationIdentityWithPreSerializationLoweringTest
2728
import org.jetbrains.kotlin.konan.test.serialization.AbstractNativeIrDeserializationTest
2829
import org.jetbrains.kotlin.konan.test.serialization.AbstractNativeIrDeserializationWithInlinedFunInKlibTest
2930
import org.jetbrains.kotlin.konan.test.syntheticAccessors.*
@@ -294,6 +295,9 @@ fun main() {
294295
testClass<AbstractFirKlibCrossCompilationIdentityTest> {
295296
model()
296297
}
298+
testClass<AbstractFirKlibCrossCompilationIdentityWithPreSerializationLoweringTest> {
299+
model()
300+
}
297301
}
298302
}
299303

native/native.tests/klib-ir-inliner/tests/org/jetbrains/kotlin/konan/test/klib/AbstractFirKlibCrossCompilationIdentityTest.kt

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigu
4444
import org.jetbrains.kotlin.test.services.configuration.NativeEnvironmentConfigurator
4545
import org.jetbrains.kotlin.test.services.moduleStructure
4646
import org.jetbrains.kotlin.test.utils.MultiModuleInfoDumper
47+
import org.jetbrains.kotlin.utils.bind
4748
import org.junit.jupiter.api.Assumptions.assumeTrue
4849
import org.junit.jupiter.api.Tag
4950
import 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
)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// MODULE: lib
2+
MODULE_FRAGMENT name:<lib>
3+
FILE fqName:lib fileName:/lib.kt
4+
FUN name:createNSString signature:lib/createNSString|createNSString(){}[0] visibility:public modality:FINAL returnType:platform.Foundation.NSString
5+
BLOCK_BODY
6+
VAR name:x type:platform.Foundation.NSString [val]
7+
CONSTRUCTOR_CALL 'platform.Foundation/NSString.<init>|objc:init#Constructor[100]' type=platform.Foundation.NSString origin=null
8+
RETURN type=kotlin.Nothing from='lib/createNSString|createNSString(){}[0]'
9+
GET_VAR 'val x: platform.Foundation.NSString [val] declared in lib.createNSString' type=platform.Foundation.NSString origin=null
10+
11+
// MODULE: app
12+
MODULE_FRAGMENT name:<app>
13+
FILE fqName:app fileName:/app.kt
14+
FUN name:main signature:app/main|main(){}[0] visibility:public modality:FINAL returnType:kotlin.Unit
15+
BLOCK_BODY
16+
VAR name:x type:platform.Foundation.NSString [val]
17+
CALL 'lib/createNSString|createNSString(){}[0]' type=platform.Foundation.NSString origin=null
18+
CALL 'kotlin/check|check(kotlin.Boolean){}[0]' type=kotlin.Unit origin=null
19+
ARG 1: CALL 'kotlin.internal.ir/EQEQ|EQEQ(kotlin.Any?;kotlin.Any?){}[0]' type=kotlin.Boolean origin=EQEQ
20+
ARG arg0: CALL 'kotlin/ULong.toInt|toInt(){}[0]' type=kotlin.Int origin=null
21+
ARG 1: CALL 'platform.Foundation/NSString.length.<get-length>|objc:length#Accessor[100]' type=kotlin.ULong origin=GET_PROPERTY
22+
ARG 1: GET_VAR 'val x: platform.Foundation.NSString [val] declared in app.main' type=platform.Foundation.NSString origin=null
23+
ARG arg1: CONST Int type=kotlin.Int value=0

0 commit comments

Comments
 (0)