[Test] Migrate AbstractIrBlackBoxCodegenTest to new infrastructure

This commit is contained in:
Dmitriy Novozhilov
2020-12-29 15:48:38 +03:00
committed by TeamCityServer
parent f1a2e66ba4
commit e3c7bd5f85
7 changed files with 6827 additions and 2385 deletions
@@ -4,7 +4,6 @@
// EXPECTED_REACHABLE_NODES: 1304
// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: NATIVE
// IGNORE_LIGHT_ANALYSIS
// MODULE: lib1
@@ -6,12 +6,16 @@
package org.jetbrains.kotlin.test.backend.ir
import org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory
import org.jetbrains.kotlin.test.backend.classic.JavaCompilerFacade
import org.jetbrains.kotlin.test.model.*
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
class JvmIrBackendFacade(
testServices: TestServices
) : IrBackendFacade<BinaryArtifacts.Jvm>(testServices, ArtifactKinds.Jvm) {
private val javaCompilerFacade = JavaCompilerFacade(testServices)
override fun transform(
module: TestModule,
inputArtifact: IrBackendInput
@@ -20,6 +24,8 @@ class JvmIrBackendFacade(
val codegenFactory = state.codegenFactory as JvmIrCodegenFactory
codegenFactory.doGenerateFilesInternal(inputArtifact.backendInput)
state.factory.done()
val configuration = testServices.compilerConfigurationProvider.getCompilerConfiguration(module)
javaCompilerFacade.compileJavaFiles(module, configuration, state.factory)
return BinaryArtifacts.Jvm(state.factory)
}
@@ -0,0 +1,22 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.test.runners.codegen
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontend2IrConverter
import org.jetbrains.kotlin.test.model.BackendFacade
import org.jetbrains.kotlin.test.model.BinaryArtifacts
import org.jetbrains.kotlin.test.model.Frontend2BackendConverter
open class AbstractIrBlackBoxCodegenTest : AbstractJvmBlackBoxCodegenTestBase(TargetBackend.JVM_IR) {
override val frontendToBackendConverter: Constructor<Frontend2BackendConverter<*, *>>
get() = ::ClassicFrontend2IrConverter
override val backendFacade: Constructor<BackendFacade<*, BinaryArtifacts.Jvm>>
get() = ::JvmIrBackendFacade
}
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest
import org.jetbrains.kotlin.test.TargetBackend
@Deprecated("Prefer using new test runner: org.jetbrains.kotlin.test.runners.codegen.AbstractIrBlackBoxCodegenTest")
abstract class AbstractIrBlackBoxCodegenTest : AbstractBlackBoxCodegenTest() {
override val backend = TargetBackend.JVM_IR
}
@@ -377,10 +377,6 @@ fun generateJUnit3CompilerTests(args: Array<String>) {
model("codegen/composeLikeBytecodeText", targetBackend = TargetBackend.JVM_IR)
}
testClass<AbstractIrBlackBoxCodegenTest> {
model("codegen/box", targetBackend = TargetBackend.JVM_IR, excludeDirs = listOf("oldLanguageVersions"))
}
testClass<AbstractIrBlackBoxAgainstJavaCodegenTest> {
model("codegen/boxAgainstJava", targetBackend = TargetBackend.JVM_IR, excludeDirs = listOf("oldLanguageVersions"))
}
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.generators.util.TestGeneratorUtil
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.runners.*
import org.jetbrains.kotlin.test.runners.codegen.AbstractBlackBoxCodegenTest
import org.jetbrains.kotlin.test.runners.codegen.AbstractIrBlackBoxCodegenTest
fun generateJUnit5CompilerTests(args: Array<String>) {
val excludedFirTestdataPattern = "^(.+)\\.fir\\.kts?\$"
@@ -58,6 +59,10 @@ fun generateJUnit5CompilerTests(args: Array<String>) {
testClass<AbstractBlackBoxCodegenTest> {
model("codegen/box")
}
testClass<AbstractIrBlackBoxCodegenTest> {
model("codegen/box", excludeDirs = listOf("oldLanguageVersions"))
}
}
// ---------------------------------------------- FIR tests ----------------------------------------------