Scripting: add test for loading configuration for gradle scripts

This commit is contained in:
Natalia Selezneva
2019-12-10 09:13:44 +03:00
parent 424a2c72b2
commit d68c3584f2
12 changed files with 261 additions and 47 deletions
@@ -0,0 +1,7 @@
plugins {
// INSIDE_SECTIONS
}
dependencies {
// OUTSIDE_SECTIONS
}
@@ -0,0 +1 @@
# OUTSIDE_SECTIONS
@@ -0,0 +1,5 @@
pluginManagement {
// INSIDE_SECTIONS
}
// OUTSIDE_SECTIONS
@@ -0,0 +1,37 @@
package custom.scriptDefinition
import kotlin.script.dependencies.*
import kotlin.script.experimental.dependencies.*
import kotlin.script.templates.*
import java.io.File
import kotlin.script.experimental.location.*
class TestDependenciesResolver : AsyncDependenciesResolver {
suspend override fun resolveAsync(scriptContents: ScriptContents, environment: Environment): DependenciesResolver.ResolveResult {
val text = scriptContents.text as String
val result = when {
text.startsWith("#BAD:") -> DependenciesResolver.ResolveResult.Failure(
reports = listOf(ScriptReport(text))
)
else -> DependenciesResolver.ResolveResult.Success(
dependencies = ScriptDependencies(
classpath = listOf(environment["template-classes"] as File),
imports = listOf("x_" + text.replace(Regex("#IGNORE_IN_CONFIGURATION"), ""))
),
reports = listOf(ScriptReport(text))
)
}
javaClass.classLoader
.loadClass("org.jetbrains.kotlin.idea.script.AbstractScriptConfigurationLoadingTest")
.methods.single { it.name == "loadingScriptConfigurationCallback" }
.invoke(null)
return result
}
}
@ScriptExpectedLocations([ScriptExpectedLocation.Everywhere])
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = ".*\\.gradle\\.kts")
class Template