Tests, Scripting: extend custom def test infra with gradle-like def
to be able to test gradle-like DSL
This commit is contained in:
committed by
Space Team
parent
988edab7a0
commit
60e38d592c
+10
-3
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoots
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.StringDirective
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.RuntimeClasspathProvider
|
||||
@@ -30,9 +31,15 @@ class ScriptWithCustomDefEnvironmentConfigurator(testServices: TestServices) : E
|
||||
configuration.addJvmClasspathRoots(testScriptDefinitionClasspath)
|
||||
val dirSplitRegex = Regex(" *, *")
|
||||
ScriptingTestDirectives.directivesToPassViaEnvironment.forEach { (directive, envName) ->
|
||||
module.directives[directive].flatMap { it.split(dirSplitRegex).filter { it.isNotEmpty() } }.let {
|
||||
if (it.isNotEmpty()) {
|
||||
configuration.put(ScriptingConfigurationKeys.LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION, envName, it)
|
||||
if (directive is StringDirective) {
|
||||
module.directives[directive].flatMap { it.split(dirSplitRegex).filter { it.isNotEmpty() } }.let {
|
||||
if (it.isNotEmpty()) {
|
||||
configuration.put(ScriptingConfigurationKeys.LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION, envName, it)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (directive in module.directives) {
|
||||
configuration.put(ScriptingConfigurationKeys.LEGACY_SCRIPT_RESOLVER_ENVIRONMENT_OPTION, envName, "true")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -10,10 +10,12 @@ import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
|
||||
object ScriptingTestDirectives : SimpleDirectivesContainer() {
|
||||
val SCRIPT_DEFAULT_IMPORTS by stringDirective("Default imports", multiLine = true)
|
||||
val SCRIPT_PROVIDED_PROPERTIES by stringDirective("Provided properties", multiLine = true)
|
||||
val GRADLE_LIKE_SCRIPT by directive("Provided properties")
|
||||
|
||||
val directivesToPassViaEnvironment =
|
||||
listOf(
|
||||
SCRIPT_DEFAULT_IMPORTS to "defaultImports",
|
||||
SCRIPT_PROVIDED_PROPERTIES to "providedProperties",
|
||||
GRADLE_LIKE_SCRIPT to "gradleLikeScript",
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user