From a6c90f13c2424ef549031d0da7fd96299b3c315b Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Tue, 15 Jan 2019 17:57:32 +0100 Subject: [PATCH] Implement test for #KT-29301, #KT-29296 and #KT-29293 --- .../kotlin/mainKts/test/mainKtsTest.kt | 15 +++++++++++++++ .../testData/resolve-log4j-and-docopt.main.kts | 18 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 libraries/tools/kotlin-main-kts-test/testData/resolve-log4j-and-docopt.main.kts diff --git a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt index 7fc11d4349b..3edd4b7dbba 100644 --- a/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt +++ b/libraries/tools/kotlin-main-kts-test/test/org/jetbrains/kotlin/mainKts/test/mainKtsTest.kt @@ -13,13 +13,18 @@ import java.io.PrintStream import kotlin.script.experimental.api.* import kotlin.script.experimental.host.toScriptSource import kotlin.script.experimental.jvmhost.BasicJvmScriptingHost +import kotlin.script.experimental.jvmhost.baseClassLoader import kotlin.script.experimental.jvmhost.createJvmCompilationConfigurationFromTemplate +import kotlin.script.experimental.jvmhost.jvm fun evalFile(scriptFile: File): ResultWithDiagnostics { val scriptDefinition = createJvmCompilationConfigurationFromTemplate() val evaluationEnv = ScriptEvaluationConfiguration { + jvm { + baseClassLoader(null) + } constructorArgs(emptyArray()) enableScriptsInstancesSharing() } @@ -61,6 +66,16 @@ class MainKtsTest { res is ResultWithDiagnostics.Failure && res.reports.any { it.message.contains("Unknown set of arguments to maven resolver: abracadabra") }) } + @Test + fun testResolveLog4jAndDocopt() { + val res = evalFile(File("testData/resolve-log4j-and-docopt.main.kts")) + + Assert.assertTrue( + "test failed:\n ${res.reports.joinToString("\n ") { it.message + if (it.exception == null) "" else ": ${it.exception}" }}", + res is ResultWithDiagnostics.Success + ) + } + @Test fun testImport() { diff --git a/libraries/tools/kotlin-main-kts-test/testData/resolve-log4j-and-docopt.main.kts b/libraries/tools/kotlin-main-kts-test/testData/resolve-log4j-and-docopt.main.kts new file mode 100644 index 00000000000..c10e1cff3a9 --- /dev/null +++ b/libraries/tools/kotlin-main-kts-test/testData/resolve-log4j-and-docopt.main.kts @@ -0,0 +1,18 @@ + +// NOTE: copied for kscript tests + +@file:DependsOn("log4j:log4j:1.2.12") +@file:DependsOn("com.offbytwo:docopt:0.6.0.20150202") + +// some pointless comment + +import org.docopt.Docopt + +// test the docopt dependency +val docopt = Docopt("Usage: jl [options] []") + +// instantiate a logger to test the log4j dependency +org.apache.log4j.Logger.getRootLogger() + + +println("Succeeded!")