Load scripting plugin explicitly in repl tests and JSR-223
This commit is contained in:
+12
@@ -18,12 +18,18 @@ package org.jetbrains.kotlin.codegen;
|
||||
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||
import org.jetbrains.kotlin.name.FqName;
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind;
|
||||
import org.jetbrains.kotlin.test.TestJdkKind;
|
||||
import org.jetbrains.kotlin.utils.ExceptionUtilsKt;
|
||||
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.List;
|
||||
|
||||
import static org.jetbrains.kotlin.script.ScriptTestUtilKt.loadScriptingPlugin;
|
||||
|
||||
public abstract class AbstractScriptCodegenTest extends CodegenTestCase {
|
||||
@Override
|
||||
@@ -32,6 +38,12 @@ public abstract class AbstractScriptCodegenTest extends CodegenTestCase {
|
||||
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updateConfiguration(@NotNull CompilerConfiguration configuration) {
|
||||
loadScriptingPlugin(configuration);
|
||||
super.updateConfiguration(configuration);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doTest(@NotNull String filename) {
|
||||
loadFileByFullPath(filename);
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
||||
import org.jetbrains.kotlin.script.StandardScriptDefinition
|
||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
@@ -56,6 +57,7 @@ class ReplCompilerJava8Test : KtUsefulTestCase() {
|
||||
addKotlinSourceRoot(tmpdir!!.absolutePath)
|
||||
put(JVMConfigurationKeys.OUTPUT_DIRECTORY, tmpdir!!)
|
||||
put(JVMConfigurationKeys.JVM_TARGET, JvmTarget.JVM_1_8)
|
||||
loadScriptingPlugin(this)
|
||||
}
|
||||
|
||||
val environment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||
@@ -106,7 +108,9 @@ class ReplCompilerJava8Test : KtUsefulTestCase() {
|
||||
|
||||
private fun makeConfiguration() = KotlinTestUtils.newConfiguration(
|
||||
ConfigurationKind.ALL, TestJdkKind.FULL_JDK, File(KotlinIntegrationTestBase.getCompilerLib(), "kotlin-stdlib.jar"), tmpdir
|
||||
)
|
||||
).also {
|
||||
loadScriptingPlugin(it)
|
||||
}
|
||||
|
||||
private fun runTest(configuration: CompilerConfiguration): ReplCompileResult {
|
||||
val collector = PrintingMessageCollector(System.out, MessageRenderer.WITHOUT_PATHS, false)
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
@@ -203,6 +204,7 @@ internal class TestRepl(
|
||||
|
||||
private val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK, *templateClasspath.toTypedArray()).apply {
|
||||
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
|
||||
loadScriptingPlugin(this)
|
||||
}
|
||||
|
||||
val baseClasspath: List<File> get() = configuration.jvmClasspathRoots
|
||||
|
||||
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.codegen
|
||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||
import org.jetbrains.kotlin.script.util.scriptCompilationClasspathFromContextOrStlib
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.configureScriptDefinitions
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
@@ -39,6 +40,8 @@ abstract class AbstractCustomScriptCodegenTest : CodegenTestCase() {
|
||||
}
|
||||
|
||||
configuration.addJvmClasspathRoots(additionalDependencies.orEmpty())
|
||||
|
||||
loadScriptingPlugin(configuration)
|
||||
}
|
||||
|
||||
override fun doMultiFileTest(wholeFile: File, files: MutableList<TestFile>, javaFilesDir: File?) {
|
||||
|
||||
@@ -25,6 +25,7 @@ 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.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||
import org.jetbrains.kotlin.scripts.TestKotlinScriptDependenciesResolver
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
@@ -124,6 +125,7 @@ class ScriptGenTest : CodegenTestCase() {
|
||||
addKotlinSourceRoots(sourcePaths.map { "${KotlinTestUtils.getTestDataPathBase()}/codegen/$it" })
|
||||
addJvmClasspathRoots(additionalDependencies)
|
||||
}
|
||||
loadScriptingPlugin(configuration)
|
||||
|
||||
myEnvironment = KotlinCoreEnvironment.createForTests(testRootDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES)
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.util.text.StringUtil
|
||||
import org.jetbrains.kotlin.cli.common.repl.ReplEvalResult
|
||||
import org.jetbrains.kotlin.cli.jvm.repl.configuration.ConsoleReplConfiguration
|
||||
import org.jetbrains.kotlin.cli.jvm.repl.ReplInterpreter
|
||||
import org.jetbrains.kotlin.script.loadScriptingPlugin
|
||||
import org.jetbrains.kotlin.test.ConfigurationKind
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import org.jetbrains.kotlin.test.TestJdkKind
|
||||
@@ -84,6 +85,7 @@ abstract class AbstractReplInterpreterTest : KtUsefulTestCase() {
|
||||
|
||||
protected fun doTest(path: String) {
|
||||
val configuration = KotlinTestUtils.newConfiguration(ConfigurationKind.ALL, TestJdkKind.MOCK_JDK)
|
||||
loadScriptingPlugin(configuration)
|
||||
val repl = ReplInterpreter(testRootDisposable, configuration, ConsoleReplConfiguration())
|
||||
|
||||
for ((code, expected) in loadLines(File(path))) {
|
||||
|
||||
@@ -10,6 +10,7 @@ dependencies {
|
||||
compile(project(":kotlin-script-runtime"))
|
||||
compile(projectRuntimeJar(":kotlin-compiler-embeddable"))
|
||||
compile(project(":kotlin-script-util"))
|
||||
runtime(projectRuntimeJar(":kotlin-scripting-compiler-embeddable"))
|
||||
testCompile(project(":kotlin-test:kotlin-test-junit"))
|
||||
testCompile(commonDep("junit:junit"))
|
||||
testRuntime(project(":kotlin-reflect"))
|
||||
|
||||
@@ -17,6 +17,7 @@ dependencies {
|
||||
compile(commonDep("org.jetbrains.intellij.deps", "trove4j"))
|
||||
compileOnly(project(":compiler:cli"))
|
||||
compileOnly(project(":compiler:daemon-common"))
|
||||
compileOnly(project(":kotlin-scripting-compiler"))
|
||||
compile(projectRuntimeJar(":kotlin-daemon-client"))
|
||||
compileOnly("com.jcabi:jcabi-aether:1.0-SNAPSHOT")
|
||||
compileOnly("org.sonatype.aether:aether-api:1.13.1")
|
||||
|
||||
+3
@@ -22,9 +22,11 @@ import org.jetbrains.kotlin.cli.common.repl.*
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmSdkRoots
|
||||
import org.jetbrains.kotlin.cli.jvm.repl.GenericReplCompiler
|
||||
import org.jetbrains.kotlin.compiler.plugin.ComponentRegistrar
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinition
|
||||
import org.jetbrains.kotlin.script.KotlinScriptDefinitionFromAnnotatedTemplate
|
||||
import org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import java.io.File
|
||||
import java.net.URLClassLoader
|
||||
@@ -67,6 +69,7 @@ class KotlinJsr223JvmLocalScriptEngine(
|
||||
private fun makeCompilerConfiguration() = CompilerConfiguration().apply {
|
||||
addJvmSdkRoots(PathUtil.getJdkClassesRootsFromCurrentJre())
|
||||
addJvmClasspathRoots(templateClasspath)
|
||||
add(ComponentRegistrar.PLUGIN_COMPONENT_REGISTRARS, ScriptingCompilerConfigurationComponentRegistrar())
|
||||
put(CommonConfigurationKeys.MODULE_NAME, "kotlin-script")
|
||||
languageVersionSettings = LanguageVersionSettingsImpl(
|
||||
LanguageVersion.LATEST_STABLE, ApiVersion.LATEST_STABLE, mapOf(AnalysisFlags.skipMetadataVersionCheck to true)
|
||||
|
||||
Reference in New Issue
Block a user