diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java index 1ccc94e5054..eb309934198 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/KotlinMultiFileTestWithJava.java @@ -15,8 +15,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles; import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment; import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.kotlin.config.CompilerConfiguration; -import org.jetbrains.kotlin.config.JVMConfigurationKeys; -import org.jetbrains.kotlin.script.StandardScriptDefinition; +import org.jetbrains.kotlin.parsing.KotlinParserDefinition; import org.jetbrains.kotlin.test.ConfigurationKind; import org.jetbrains.kotlin.test.InTextDirectivesUtils; import org.jetbrains.kotlin.test.KotlinTestUtils; @@ -26,6 +25,8 @@ import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase; import java.io.File; import java.util.*; +import static org.jetbrains.kotlin.script.ScriptTestUtilKt.loadScriptingPlugin; + public abstract class KotlinMultiFileTestWithJava extends KtUsefulTestCase { protected File javaFilesDir; private File kotlinSourceRoot; @@ -61,6 +62,11 @@ public abstract class KotlinMultiFileTestWithJava extends KtUsefulTestCase } } + @NotNull + protected Boolean isScriptingNeeded(@NotNull File file) { + return file.getName().endsWith(KotlinParserDefinition.STD_SCRIPT_EXT); + } + @NotNull protected KotlinCoreEnvironment createEnvironment(@NotNull File file) { CompilerConfiguration configuration = KotlinTestUtils.newConfiguration( @@ -69,7 +75,9 @@ public abstract class KotlinMultiFileTestWithJava extends KtUsefulTestCase getClasspath(file), isJavaSourceRootNeeded() ? Collections.singletonList(javaFilesDir) : Collections.emptyList() ); - configuration.add(JVMConfigurationKeys.SCRIPT_DEFINITIONS, StandardScriptDefinition.INSTANCE); + if (isScriptingNeeded(file)) { + loadScriptingPlugin(configuration); + } if (isKotlinSourceRootNeeded()) { ContentRootsKt.addKotlinSourceRoot(configuration, kotlinSourceRoot.getPath()); } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/script/scriptTestUtil.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/script/scriptTestUtil.kt new file mode 100644 index 00000000000..8ddbf026d22 --- /dev/null +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/script/scriptTestUtil.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2019 JetBrains s.r.o. 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.script + +import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser +import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.utils.PathUtil +import java.io.File + +fun loadScriptingPlugin(configuration: CompilerConfiguration) { + val libPath = PathUtil.kotlinPathsForCompiler.libPath + val pluginClasspath = with (PathUtil) { + listOf( + KOTLIN_SCRIPTING_COMPILER_PLUGIN_JAR, + KOTLIN_SCRIPTING_COMMON_JAR, + KOTLIN_SCRIPTING_JVM_JAR + ).map { File(libPath, it).path } + } + PluginCliParser.loadPluginsSafe(pluginClasspath, null, configuration) +} \ No newline at end of file diff --git a/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt b/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt index bd7dc013b7d..46ee7932246 100644 --- a/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt +++ b/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt @@ -18,7 +18,9 @@ import org.jetbrains.kotlin.cli.jvm.compiler.NoScopeRecordCliBindingTrace import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.config.CommonConfigurationKeys import org.jetbrains.kotlin.config.CompilerConfiguration +import org.jetbrains.kotlin.parsing.KotlinParserDefinition import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension +import org.jetbrains.kotlin.script.loadScriptingPlugin import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind @@ -106,6 +108,10 @@ abstract class AbstractKotlinUastTest : AbstractUastTest() { put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector) put(CommonConfigurationKeys.MODULE_NAME, "test-module") + + if (sourceFile.extension == KotlinParserDefinition.STD_SCRIPT_SUFFIX) { + loadScriptingPlugin(this) + } } }