JVM_IR: run Kotlin against Kotlin tests with serialization

This commit is contained in:
Georgy Bronnikov
2021-03-19 14:59:03 +03:00
committed by TeamCityServer
parent ab3d6490ed
commit 97d3eda23c
4 changed files with 5397 additions and 1 deletions
@@ -15,6 +15,7 @@ enum class TargetBackend(
JVM_IR(true, JVM),
JVM_MULTI_MODULE_IR_AGAINST_OLD(true, JVM_IR),
JVM_MULTI_MODULE_OLD_AGAINST_IR(false, JVM),
JVM_IR_SERIALIZE(true, JVM_IR),
JS(false),
JS_IR(true, JS),
JS_IR_ES6(true, JS_IR),
@@ -5,6 +5,8 @@
package org.jetbrains.kotlin.test.runners.codegen
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.TestInfrastructureInternals
@@ -22,7 +24,9 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendFacade
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
import org.jetbrains.kotlin.test.services.ModuleTransformerForTwoFilesBoxTests
import org.jetbrains.kotlin.test.services.TestServices
@OptIn(TestInfrastructureInternals::class)
@@ -32,7 +36,9 @@ abstract class AbstractCompileKotlinAgainstInlineKotlinTestBase<I : ResultingArt
abstract val frontendToBackendConverter: Constructor<Frontend2BackendConverter<ClassicFrontendOutputArtifact, I>>
abstract val backendFacade: Constructor<BackendFacade<I, BinaryArtifacts.Jvm>>
override fun TestConfigurationBuilder.configuration() {
override fun TestConfigurationBuilder.configuration() = configurationImpl()
protected fun TestConfigurationBuilder.configurationImpl() {
commonConfigurationForCodegenTest(
FrontendKinds.ClassicFrontend,
::ClassicFrontendFacade,
@@ -65,3 +71,17 @@ open class AbstractIrCompileKotlinAgainstInlineKotlinTest :
override val backendFacade: Constructor<BackendFacade<IrBackendInput, BinaryArtifacts.Jvm>>
get() = ::JvmIrBackendFacade
}
open class AbstractIrSerializeCompileKotlinAgainstInlineKotlinTest : AbstractIrCompileKotlinAgainstInlineKotlinTest() {
override fun TestConfigurationBuilder.configuration() {
// call super
configurationImpl()
useConfigurators(::SerializeSetter)
}
private class SerializeSetter(testServices: TestServices) : EnvironmentConfigurator(testServices) {
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
configuration.put(JVMConfigurationKeys.SERIALIZE_IR, true)
}
}
}
@@ -110,6 +110,10 @@ fun generateJUnit5CompilerTests(args: Array<String>) {
model("codegen/boxInline")
}
testClass<AbstractIrSerializeCompileKotlinAgainstInlineKotlinTest> {
model("codegen/boxInline")
}
testClass<AbstractJvmIrAgainstOldBoxInlineTest> {
model("codegen/boxInline")
}