Add TargetBackend.isIR, simplify JVM IR test configuration

This commit is contained in:
Alexander Udalov
2019-11-08 17:21:00 +01:00
parent ab65a6bc6c
commit ce09be3f59
21 changed files with 33 additions and 113 deletions
@@ -41,7 +41,7 @@ abstract public class AbstractGenerateNotNullAssertionsTest extends CodegenTestC
configuration.put(JVMConfigurationKeys.DISABLE_CALL_ASSERTIONS, disableCallAssertions);
configuration.put(JVMConfigurationKeys.DISABLE_PARAM_ASSERTIONS, disableParamAssertions);
updateConfiguration(configuration);
configuration.put(JVMConfigurationKeys.IR, getBackend().isIR());
myEnvironment =
KotlinCoreEnvironment.createForTests(getTestRootDisposable(), configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
@@ -39,7 +39,6 @@ public abstract class AbstractScriptCodegenTest extends CodegenTestCase {
@Override
protected void updateConfiguration(@NotNull CompilerConfiguration configuration) {
loadScriptingPlugin(configuration);
super.updateConfiguration(configuration);
}
@Override
@@ -140,6 +140,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
@NotNull List<TestFile> testFilesWithConfigurationDirectives
) {
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(kind, jdkKind, classpath, javaSource);
configuration.put(JVMConfigurationKeys.IR, getBackend().isIR());
updateConfigurationByDirectivesInTestFiles(testFilesWithConfigurationDirectives, configuration, coroutinesPackage);
updateConfiguration(configuration);
@@ -1,12 +1,12 @@
/*
* Copyright 2010-2019 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.codegen.debugInformation
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrLocalVariableTest : AbstractLocalVariableTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
}
override fun getBackend(): TargetBackend = TargetBackend.JVM_IR
}
@@ -5,13 +5,8 @@
package org.jetbrains.kotlin.codegen.debugInformation
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrSteppingTest : AbstractSteppingTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
}
override fun getBackend(): TargetBackend = TargetBackend.JVM_IR
}
@@ -6,15 +6,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractBlackBoxAgainstJavaCodegenTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrBlackBoxAgainstJavaCodegenTest : AbstractBlackBoxAgainstJavaCodegenTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -17,14 +17,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrBlackBoxCodegenTest : AbstractBlackBoxCodegenTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -17,11 +17,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrBlackBoxInlineCodegenTest : AbstractBlackBoxCodegenTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) = configuration.put(JVMConfigurationKeys.IR, true)
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -6,11 +6,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractBytecodeTextTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrBytecodeTextTest : AbstractBytecodeTextTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) = configuration.put(JVMConfigurationKeys.IR, true)
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -7,18 +7,11 @@ package org.jetbrains.kotlin.codegen.ir
import com.intellij.openapi.util.Comparing
import org.jetbrains.kotlin.codegen.AbstractCheckLocalVariablesTableTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
import org.junit.ComparisonFailure
import java.io.File
abstract class AbstractIrCheckLocalVariablesTableTest : AbstractCheckLocalVariablesTableTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun doCompare(
testFile: File,
text: String,
@@ -6,11 +6,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractCompileKotlinAgainstInlineKotlinTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrCompileKotlinAgainstInlineKotlinTest : AbstractCompileKotlinAgainstInlineKotlinTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) = configuration.put(JVMConfigurationKeys.IR, true)
override fun getBackend() = TargetBackend.JVM_IR
}
}
@@ -6,11 +6,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractCompileKotlinAgainstKotlinTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrCompileKotlinAgainstKotlinTest : AbstractCompileKotlinAgainstKotlinTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) = configuration.put(JVMConfigurationKeys.IR, true)
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -6,8 +6,6 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.AbstractLineNumberTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
@@ -18,11 +16,6 @@ import org.jetbrains.org.objectweb.asm.Opcodes
import java.io.File
abstract class AbstractIrLineNumberTest : AbstractLineNumberTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun compareCustom(psiFile: KtFile, wholeFile: File) {
val fileText = psiFile.text
val expectedLineNumbers = normalize(
@@ -6,14 +6,8 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.codegen.flags.AbstractWriteFlagsTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrWriteFlagsTest : AbstractWriteFlagsTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -5,15 +5,9 @@
package org.jetbrains.kotlin.codegen.ir
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.jvm.compiler.AbstractWriteSignatureTest
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrWriteSignatureTest : AbstractWriteSignatureTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
@@ -6,14 +6,15 @@
package org.jetbrains.kotlin.test
enum class TargetBackend(
val isIR: Boolean,
private val compatibleWithTargetBackend: TargetBackend? = null
) {
ANY,
JVM,
JVM_IR(JVM),
JS,
JS_IR(JS),
WASM;
ANY(false),
JVM(false),
JVM_IR(true, JVM),
JS(false),
JS_IR(true, JS),
WASM(true);
val compatibleWith get() = compatibleWithTargetBackend ?: ANY
}
@@ -5,18 +5,16 @@
package org.jetbrains.kotlin.codegen.ir;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.codegen.AbstractGenerateNotNullAssertionsTest;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
import org.jetbrains.kotlin.test.TargetBackend;
public class IrGenerateNotNullAssertionsTest extends AbstractGenerateNotNullAssertionsTest {
@Override
public void updateConfiguration(@NotNull CompilerConfiguration configuration) {
configuration.put(JVMConfigurationKeys.IR, true);
}
public void testNoAssertionsForKotlinFromBinary() {
doTestNoAssertionsForKotlinFromBinary("noAssertionsForKotlin.kt", "noAssertionsForKotlinMain.kt");
}
@Override
protected TargetBackend getBackend() {
return TargetBackend.JVM_IR;
}
}
@@ -54,7 +54,7 @@ fun createCommonCoroutinesTestMethodModels(
targetBackend: TargetBackend,
skipIgnored: Boolean
): Collection<MethodModel> {
return if (targetBackend == TargetBackend.JS_IR || targetBackend == TargetBackend.JVM_IR)
return if (targetBackend.isIR)
listOf(
CoroutinesTestModel(
rootDir,
@@ -5,15 +5,8 @@
package org.jetbrains.kotlin.kapt3.test
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
abstract class AbstractIrKotlinKapt3IntegrationTest : AbstractKotlinKapt3IntegrationTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
}
@@ -5,8 +5,6 @@
package org.jetbrains.kotlin.kapt3.test
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
/*
@@ -14,19 +12,9 @@ Currently Kapt3 only works with the old backend. To enable IR, modify the isIrBa
*/
abstract class AbstractIrClassFileToSourceStubConverterTest : AbstractClassFileToSourceStubConverterTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
abstract class AbstractIrKotlinKaptContextTest : AbstractKotlinKaptContextTest() {
override fun updateConfiguration(configuration: CompilerConfiguration) {
super.updateConfiguration(configuration)
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend() = TargetBackend.JVM_IR
}
}
@@ -5,12 +5,10 @@
package org.jetbrains.kotlinx.serialization
import junit.framework.TestCase
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
import org.jetbrains.kotlin.codegen.AbstractAsmLikeInstructionListingTest
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.JVMConfigurationKeys
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar
import java.io.File
@@ -21,12 +19,10 @@ abstract class AbstractSerializationIrBytecodeListingTest : AbstractAsmLikeInstr
return wholeFile.nameWithoutExtension + ".ir.txt"
}
override fun updateConfiguration(configuration: CompilerConfiguration) {
configuration.put(JVMConfigurationKeys.IR, true)
}
override fun getBackend(): TargetBackend = TargetBackend.JVM_IR
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
SerializationComponentRegistrar.registerExtensions(environment.project)
environment.updateClasspath(listOf(JvmClasspathRoot(runtimeLibraryPath!!)))
}
}
}