From c4de5ee6b734949759e69a7d1a07ec541c9b850c Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Fri, 15 Sep 2017 15:14:49 +0200 Subject: [PATCH] Fix ScriptGen tests --- .../org/jetbrains/kotlin/codegen/CodegenTestCase.java | 4 ++++ .../org/jetbrains/kotlin/codegen/ScriptGenTest.kt | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestCase.java b/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestCase.java index 8487bb044b0..4a4a4655594 100644 --- a/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestCase.java +++ b/compiler/tests-common/org/jetbrains/kotlin/codegen/CodegenTestCase.java @@ -92,6 +92,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { protected ClassFileFactory classFileFactory; protected GeneratedClassLoader initializedClassLoader; protected File javaClassesOutputDirectory = null; + protected List additionalDependencies = null; protected ConfigurationKind configurationKind = ConfigurationKind.JDK_ONLY; private final String defaultJvmTarget = System.getProperty(DEFAULT_JVM_TARGET_FOR_TEST); @@ -360,6 +361,9 @@ public abstract class CodegenTestCase extends KtUsefulTestCase { if (javaClassesOutputDirectory != null) { files.add(javaClassesOutputDirectory); } + if (additionalDependencies != null) { + files.addAll(additionalDependencies); + } ScriptDependenciesProvider externalImportsProvider = ScriptDependenciesProvider.Companion.getInstance(myEnvironment.getProject()); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ScriptGenTest.kt b/compiler/tests/org/jetbrains/kotlin/codegen/ScriptGenTest.kt index 391054ce801..57d9d417770 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ScriptGenTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ScriptGenTest.kt @@ -16,11 +16,13 @@ package org.jetbrains.kotlin.codegen +import java.io.File import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.MessageRenderer import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots import org.jetbrains.kotlin.config.JVMConfigurationKeys import org.jetbrains.kotlin.config.addKotlinSourceRoots import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate @@ -38,6 +40,12 @@ class ScriptGenTest : CodegenTestCase() { override fun setUp() { super.setUp() + additionalDependencies = + System.getenv("PROJECT_CLASSES_DIRS")?.split(File.pathSeparator)?.map { File(it) } + ?: listOf("compiler/build/classes/kotlin/test", "build/compiler/classes/kotlin/test") + .mapNotNull { File(it).canonicalFile.takeIf { it.isDirectory } } + .takeIf { it.isNotEmpty() } + ?: throw IllegalStateException("Unable to get classes output dirs, set PROJECT_CLASSES_DIRS environment variable") } fun testLanguage() { @@ -101,13 +109,14 @@ class ScriptGenTest : CodegenTestCase() { } private fun setUpEnvironment(sourcePaths: List) { - val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK).apply { + val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.FULL_JDK).apply { put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, PrintingMessageCollector(System.err, MessageRenderer.PLAIN_FULL_PATHS, false)) add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, FIB_SCRIPT_DEFINITION) add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, NO_PARAM_SCRIPT_DEFINITION) put(JVMConfigurationKeys.RETAIN_OUTPUT_IN_MEMORY, true) addKotlinSourceRoots(sourcePaths.map { "${KotlinTestUtils.getTestDataPathBase()}/codegen/$it" }) + addJvmClasspathRoots(additionalDependencies) } myEnvironment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)