From 37d859c1227b6fb0e2a2d6b272e9b436a77e735b Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Fri, 17 May 2019 14:41:47 +0200 Subject: [PATCH] Move scripting jvm host tests to a separate project... to solve problems with testing with direct dependency on proguarded compiler --- .../scripting/jvm-host-test/build.gradle.kts | 24 +++++++++++++++++++ .../test/ConstructorArgumentOrderTest.kt | 0 .../jvmhost/test/LegacyReplTest.kt | 0 .../experimental/jvmhost/test/ReplTest.kt | 2 +- .../jvmhost/test/ScriptingHostTest.kt | 2 +- .../jvmhost/test/TestScriptDefinitions.kt | 0 .../importTest/diamondImportCommon.kts | 0 .../importTest/diamondImportMiddle.kts | 0 .../testData/importTest/helloWithVal.kts | 0 .../testData/importTest/requiredSrc.kt | 0 libraries/scripting/jvm-host/build.gradle.kts | 13 +++------- .../jvmhost/impl/CompiledScriptClassLoader.kt | 2 +- settings.gradle | 2 ++ 13 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 libraries/scripting/jvm-host-test/build.gradle.kts rename libraries/scripting/{jvm-host => jvm-host-test}/test/kotlin/script/experimental/jvmhost/test/ConstructorArgumentOrderTest.kt (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt (98%) rename libraries/scripting/{jvm-host => jvm-host-test}/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt (99%) rename libraries/scripting/{jvm-host => jvm-host-test}/test/kotlin/script/experimental/jvmhost/test/TestScriptDefinitions.kt (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/testData/importTest/diamondImportCommon.kts (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/testData/importTest/diamondImportMiddle.kts (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/testData/importTest/helloWithVal.kts (100%) rename libraries/scripting/{jvm-host => jvm-host-test}/testData/importTest/requiredSrc.kt (100%) diff --git a/libraries/scripting/jvm-host-test/build.gradle.kts b/libraries/scripting/jvm-host-test/build.gradle.kts new file mode 100644 index 00000000000..50bd1402441 --- /dev/null +++ b/libraries/scripting/jvm-host-test/build.gradle.kts @@ -0,0 +1,24 @@ + +plugins { + kotlin("jvm") +} + +jvmTarget = "1.6" + +dependencies { + testCompile(intellijCoreDep()) + testCompile(intellijDep()) { includeJars("openapi", "idea", "log4j") } + testCompile(project(":kotlin-scripting-jvm-host")) + testCompile(projectTests(":compiler:tests-common")) + testCompile(commonDep("junit")) + testCompile(project(":compiler:daemon-common")) // TODO: fix import (workaround for jps build) +} + +sourceSets { + "main" {} + "test" { projectDefault() } +} + +projectTest(parallel = true) { + workingDir = rootDir +} diff --git a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ConstructorArgumentOrderTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ConstructorArgumentOrderTest.kt similarity index 100% rename from libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ConstructorArgumentOrderTest.kt rename to libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ConstructorArgumentOrderTest.kt diff --git a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt similarity index 100% rename from libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt rename to libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt diff --git a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt similarity index 98% rename from libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt rename to libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt index 42ccb15368d..8b8dc814baf 100644 --- a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ReplTest.kt @@ -21,7 +21,7 @@ import kotlin.script.experimental.jvmhost.impl.KJvmReplCompilerImpl class ReplTest : TestCase() { companion object { - const val TEST_DATA_DIR = "libraries/scripting/jvm-host/testData" + const val TEST_DATA_DIR = "libraries/scripting/jvm-host-test/testData" } @Test diff --git a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt similarity index 99% rename from libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt rename to libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt index 518aa8443f6..da10b5baf0f 100644 --- a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/ScriptingHostTest.kt @@ -30,7 +30,7 @@ import kotlin.script.templates.standard.SimpleScriptTemplate class ScriptingHostTest : TestCase() { companion object { - const val TEST_DATA_DIR = "libraries/scripting/jvm-host/testData" + const val TEST_DATA_DIR = "libraries/scripting/jvm-host-test/testData" } @Test diff --git a/libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/TestScriptDefinitions.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/TestScriptDefinitions.kt similarity index 100% rename from libraries/scripting/jvm-host/test/kotlin/script/experimental/jvmhost/test/TestScriptDefinitions.kt rename to libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/TestScriptDefinitions.kt diff --git a/libraries/scripting/jvm-host/testData/importTest/diamondImportCommon.kts b/libraries/scripting/jvm-host-test/testData/importTest/diamondImportCommon.kts similarity index 100% rename from libraries/scripting/jvm-host/testData/importTest/diamondImportCommon.kts rename to libraries/scripting/jvm-host-test/testData/importTest/diamondImportCommon.kts diff --git a/libraries/scripting/jvm-host/testData/importTest/diamondImportMiddle.kts b/libraries/scripting/jvm-host-test/testData/importTest/diamondImportMiddle.kts similarity index 100% rename from libraries/scripting/jvm-host/testData/importTest/diamondImportMiddle.kts rename to libraries/scripting/jvm-host-test/testData/importTest/diamondImportMiddle.kts diff --git a/libraries/scripting/jvm-host/testData/importTest/helloWithVal.kts b/libraries/scripting/jvm-host-test/testData/importTest/helloWithVal.kts similarity index 100% rename from libraries/scripting/jvm-host/testData/importTest/helloWithVal.kts rename to libraries/scripting/jvm-host-test/testData/importTest/helloWithVal.kts diff --git a/libraries/scripting/jvm-host/testData/importTest/requiredSrc.kt b/libraries/scripting/jvm-host-test/testData/importTest/requiredSrc.kt similarity index 100% rename from libraries/scripting/jvm-host/testData/importTest/requiredSrc.kt rename to libraries/scripting/jvm-host-test/testData/importTest/requiredSrc.kt diff --git a/libraries/scripting/jvm-host/build.gradle.kts b/libraries/scripting/jvm-host/build.gradle.kts index 61b1641ff6f..ee8d4344edc 100644 --- a/libraries/scripting/jvm-host/build.gradle.kts +++ b/libraries/scripting/jvm-host/build.gradle.kts @@ -10,29 +10,22 @@ dependencies { compile(kotlinStdlib()) compile(project(":kotlin-scripting-common")) compile(project(":kotlin-scripting-jvm")) - compile(project(":kotlin-scripting-compiler")) - compile(project(":kotlin-scripting-compiler-impl")) + compileOnly(project(":kotlin-scripting-compiler")) compileOnly(project(":compiler:cli")) compileOnly(project(":kotlin-reflect-api")) compileOnly(intellijCoreDep()) runtime(projectRuntimeJar(":kotlin-compiler")) + runtime(project(":kotlin-scripting-compiler")) runtime(project(":kotlin-reflect")) runtime(commonDep("org.jetbrains.intellij.deps", "trove4j")) - testCompile(projectTests(":compiler:tests-common")) - testCompile(commonDep("junit")) - testCompile(project(":daemon-common")) // TODO: fix import (workaround for jps build) } sourceSets { "main" { projectDefault() } - "test" { projectDefault() } + "test" {} } publish() standardPublicJars() - -projectTest(parallel = true) { - workingDir = rootDir -} diff --git a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/CompiledScriptClassLoader.kt b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/CompiledScriptClassLoader.kt index 5c6b1d42240..2ed43812403 100644 --- a/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/CompiledScriptClassLoader.kt +++ b/libraries/scripting/jvm-host/src/kotlin/script/experimental/jvmhost/impl/CompiledScriptClassLoader.kt @@ -11,7 +11,7 @@ import java.io.InputStream import java.net.URL import java.util.* -internal class CompiledScriptClassLoader(parent: ClassLoader?, private val entries: Map) : ClassLoader(parent) { +class CompiledScriptClassLoader(parent: ClassLoader?, private val entries: Map) : ClassLoader(parent) { override fun findClass(name: String): Class<*>? { val classPathName = name.replace('.', '/') + ".class" diff --git a/settings.gradle b/settings.gradle index 17f18aa8d18..b3dfa0cfd2a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -179,6 +179,7 @@ include ":kotlin-build-common", ":kotlin-scripting-common", ":kotlin-scripting-jvm", ":kotlin-scripting-jvm-host", + ":kotlin-scripting-jvm-host-test", ":kotlin-scripting-jvm-host-embeddable", ":kotlin-scripting-intellij", ":kotlin-scripting-compiler", @@ -358,6 +359,7 @@ project(':kotlin-annotations-android').projectDir = "$rootDir/libraries/tools/ko project(':kotlin-scripting-common').projectDir = "$rootDir/libraries/scripting/common" as File project(':kotlin-scripting-jvm').projectDir = "$rootDir/libraries/scripting/jvm" as File project(':kotlin-scripting-jvm-host').projectDir = "$rootDir/libraries/scripting/jvm-host" as File +project(':kotlin-scripting-jvm-host-test').projectDir = "$rootDir/libraries/scripting/jvm-host-test" as File project(':kotlin-scripting-jvm-host-embeddable').projectDir = "$rootDir/libraries/scripting/jvm-host-embeddable" as File project(':kotlin-scripting-jsr223').projectDir = "$rootDir/libraries/scripting/jsr223" as File project(':kotlin-scripting-jsr223-embeddable').projectDir = "$rootDir/libraries/scripting/jsr223-embeddable" as File