Support for custom default jvmTarget in jvm backend tests
This commit is contained in:
@@ -78,12 +78,15 @@ import static org.jetbrains.kotlin.test.KotlinTestUtils.getAnnotationsJar;
|
|||||||
|
|
||||||
public abstract class CodegenTestCase extends KtUsefulTestCase {
|
public abstract class CodegenTestCase extends KtUsefulTestCase {
|
||||||
private static final String DEFAULT_TEST_FILE_NAME = "a_test";
|
private static final String DEFAULT_TEST_FILE_NAME = "a_test";
|
||||||
|
public static final String DEFAULT_JVM_TARGET_FOR_TEST = "kotlin.test.default.jvm.target";
|
||||||
|
|
||||||
protected KotlinCoreEnvironment myEnvironment;
|
protected KotlinCoreEnvironment myEnvironment;
|
||||||
protected CodegenTestFiles myFiles;
|
protected CodegenTestFiles myFiles;
|
||||||
protected ClassFileFactory classFileFactory;
|
protected ClassFileFactory classFileFactory;
|
||||||
protected GeneratedClassLoader initializedClassLoader;
|
protected GeneratedClassLoader initializedClassLoader;
|
||||||
|
|
||||||
protected ConfigurationKind configurationKind = ConfigurationKind.JDK_ONLY;
|
protected ConfigurationKind configurationKind = ConfigurationKind.JDK_ONLY;
|
||||||
|
public final String defaultJvmTarget = System.getProperty(DEFAULT_JVM_TARGET_FOR_TEST);
|
||||||
|
|
||||||
protected final void createEnvironmentWithMockJdkAndIdeaAnnotations(
|
protected final void createEnvironmentWithMockJdkAndIdeaAnnotations(
|
||||||
@NotNull ConfigurationKind configurationKind,
|
@NotNull ConfigurationKind configurationKind,
|
||||||
@@ -125,7 +128,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected static CompilerConfiguration createConfiguration(
|
protected CompilerConfiguration createConfiguration(
|
||||||
@NotNull ConfigurationKind kind,
|
@NotNull ConfigurationKind kind,
|
||||||
@NotNull TestJdkKind jdkKind,
|
@NotNull TestJdkKind jdkKind,
|
||||||
@NotNull List<File> classpath,
|
@NotNull List<File> classpath,
|
||||||
@@ -135,6 +138,8 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(kind, jdkKind, classpath, javaSource);
|
CompilerConfiguration configuration = KotlinTestUtils.newConfiguration(kind, jdkKind, classpath, javaSource);
|
||||||
|
|
||||||
updateConfigurationByDirectivesInTestFiles(testFilesWithConfigurationDirectives, configuration);
|
updateConfigurationByDirectivesInTestFiles(testFilesWithConfigurationDirectives, configuration);
|
||||||
|
updateConfiguration(configuration);
|
||||||
|
setCustomDefaultJvmTarget(configuration);
|
||||||
|
|
||||||
return configuration;
|
return configuration;
|
||||||
}
|
}
|
||||||
@@ -495,6 +500,15 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setCustomDefaultJvmTarget(CompilerConfiguration configuration) {
|
||||||
|
JvmTarget target = configuration.get(JVMConfigurationKeys.JVM_TARGET);
|
||||||
|
if (target == null && defaultJvmTarget != null) {
|
||||||
|
JvmTarget value = JvmTarget.fromString(defaultJvmTarget);
|
||||||
|
assert value != null : "Can't construct JvmTarget for " + defaultJvmTarget;
|
||||||
|
configuration.put(JVMConfigurationKeys.JVM_TARGET, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void compile(
|
protected void compile(
|
||||||
@NotNull List<TestFile> files,
|
@NotNull List<TestFile> files,
|
||||||
@Nullable File javaSourceDir,
|
@Nullable File javaSourceDir,
|
||||||
@@ -508,7 +522,6 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
ArraysKt.filterNotNull(new File[] {javaSourceDir}),
|
ArraysKt.filterNotNull(new File[] {javaSourceDir}),
|
||||||
files
|
files
|
||||||
);
|
);
|
||||||
updateConfiguration(configuration);
|
|
||||||
|
|
||||||
myEnvironment = KotlinCoreEnvironment.createForTests(
|
myEnvironment = KotlinCoreEnvironment.createForTests(
|
||||||
getTestRootDisposable(), configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES
|
getTestRootDisposable(), configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES
|
||||||
|
|||||||
+2
-1
@@ -16,13 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.codegen.ir;
|
package org.jetbrains.kotlin.codegen.ir;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest;
|
import org.jetbrains.kotlin.codegen.AbstractBlackBoxCodegenTest;
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys;
|
||||||
|
|
||||||
public abstract class AbstractIrBlackBoxCodegenTest extends AbstractBlackBoxCodegenTest {
|
public abstract class AbstractIrBlackBoxCodegenTest extends AbstractBlackBoxCodegenTest {
|
||||||
@Override
|
@Override
|
||||||
protected void updateConfiguration(CompilerConfiguration configuration) {
|
protected void updateConfiguration(@NotNull CompilerConfiguration configuration) {
|
||||||
configuration.put(JVMConfigurationKeys.IR, true);
|
configuration.put(JVMConfigurationKeys.IR, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user