Fix ScriptGen tests
This commit is contained in:
@@ -92,6 +92,7 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
||||
protected ClassFileFactory classFileFactory;
|
||||
protected GeneratedClassLoader initializedClassLoader;
|
||||
protected File javaClassesOutputDirectory = null;
|
||||
protected List<File> 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());
|
||||
|
||||
@@ -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<String>) {
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user