Fix sources extraction when processing extension is on

The latter is used e.g. for scripts in source roots handling
as implemented in the commit
"Scripting: update scripts in source roots handling"
The former implementation did not covered all the cases.

#KT-54355 fixed
This commit is contained in:
Ilya Chernikov
2022-10-18 16:01:37 +02:00
committed by Space Team
parent 1fcf099104
commit 6627b62c21
3 changed files with 16 additions and 9 deletions
@@ -191,7 +191,7 @@ class ScriptingWithCliCompilerTest {
@Test
fun testCompileScriptWithRegularKotlin() {
fun compileVariant(vararg flags: String): Pair<List<String>, ExitCode> {
fun compileVariant(vararg flags: String, withScriptInstance: Boolean = true): Pair<List<String>, ExitCode> {
return withTempDir { tmpdir ->
val (_, err, exitCode) = captureOutErrRet {
CLITool.doMainNoExit(
@@ -200,7 +200,10 @@ class ScriptingWithCliCompilerTest {
"-d", tmpdir.path,
"-cp", getMainKtsClassPath().joinToString(File.pathSeparator),
*flags,
"$TEST_DATA_DIR/compiler/mixedCompilation/simpleScriptInstance.kt",
if (withScriptInstance)
"$TEST_DATA_DIR/compiler/mixedCompilation/simpleScriptInstance.kt"
else
"$TEST_DATA_DIR/compiler/mixedCompilation/nonScript.kt",
"$TEST_DATA_DIR/compiler/mixedCompilation/simpleScript.main.kts"
)
)
@@ -232,6 +235,11 @@ class ScriptingWithCliCompilerTest {
Assert.assertEquals(ExitCode.COMPILATION_ERROR, exitCode)
}
compileVariant("-language-version", "1.9", withScriptInstance = false).let { (errLines, exitCode) ->
Assert.assertTrue(errLines.none { it.startsWith(scriptInSourceRootWarning) })
Assert.assertEquals(ExitCode.OK, exitCode)
}
compileVariant("-language-version", "1.9", "-Xallow-any-scripts-in-source-roots").let { (errLines, exitCode) ->
Assert.assertTrue(errLines.none {
it.endsWith(unresolvedScriptError) || it.startsWith(scriptInSourceRootWarning)