Build: Refactor :js:js.tests:runMocha task
Introduce separate mochaTest task without dependency on test task
This commit is contained in:
@@ -107,6 +107,7 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) {
|
|||||||
enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
|
enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN }
|
||||||
enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
|
enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN }
|
||||||
data class OsType(val name: OsName, val arch: OsArch)
|
data class OsType(val name: OsName, val arch: OsArch)
|
||||||
|
|
||||||
val currentOsType = run {
|
val currentOsType = run {
|
||||||
val gradleOs = OperatingSystem.current()
|
val gradleOs = OperatingSystem.current()
|
||||||
val osName = when {
|
val osName = when {
|
||||||
@@ -275,8 +276,10 @@ fun Test.setupV8() {
|
|||||||
|
|
||||||
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean) {
|
fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean) {
|
||||||
setupV8()
|
setupV8()
|
||||||
if (jsIrEnabled)
|
if (jsIrEnabled) {
|
||||||
setupNodeJs()
|
setupNodeJs()
|
||||||
|
dependsOn(npmInstall)
|
||||||
|
}
|
||||||
|
|
||||||
inputs.files(rootDir.resolve("js/js.engines/src/org/jetbrains/kotlin/js/engine/repl.js"))
|
inputs.files(rootDir.resolve("js/js.engines/src/org/jetbrains/kotlin/js/engine/repl.js"))
|
||||||
|
|
||||||
@@ -337,8 +340,10 @@ fun Test.setUpBoxTests() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
||||||
systemProperty("overwrite.output", project.providers.gradleProperty("overwrite.output")
|
systemProperty(
|
||||||
.forUseAtConfigurationTime().orNull ?: "false")
|
"overwrite.output", project.providers.gradleProperty("overwrite.output")
|
||||||
|
.forUseAtConfigurationTime().orNull ?: "false"
|
||||||
|
)
|
||||||
|
|
||||||
val rootLocalProperties = Properties().apply {
|
val rootLocalProperties = Properties().apply {
|
||||||
rootProject.file("local.properties").takeIf { it.isFile }?.inputStream()?.use {
|
rootProject.file("local.properties").takeIf { it.isFile }?.inputStream()?.use {
|
||||||
@@ -356,7 +361,7 @@ fun Test.setUpBoxTests() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
val test = projectTest(parallel = true, jUnitMode = JUnitMode.JUnit5, maxHeapSizeMb = 4096) {
|
||||||
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true, firEnabled = true)
|
setUpJsBoxTests(jsEnabled = true, jsIrEnabled = true, firEnabled = true)
|
||||||
|
|
||||||
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
inputs.dir(rootDir.resolve("compiler/cli/cli-common/resources")) // compiler.xml
|
||||||
@@ -405,7 +410,7 @@ val generateTests by generator("org.jetbrains.kotlin.generators.tests.GenerateJs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val prepareMochaTestData by tasks.registering(Copy::class) {
|
val prepareNpmTestData by tasks.registering(Copy::class) {
|
||||||
from(testDataDir) {
|
from(testDataDir) {
|
||||||
include("package.json")
|
include("package.json")
|
||||||
include("test.js")
|
include("test.js")
|
||||||
@@ -414,11 +419,11 @@ val prepareMochaTestData by tasks.registering(Copy::class) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val npmInstall by tasks.getting(NpmTask::class) {
|
val npmInstall by tasks.getting(NpmTask::class) {
|
||||||
dependsOn(prepareMochaTestData)
|
|
||||||
workingDir.set(buildDir)
|
workingDir.set(buildDir)
|
||||||
|
dependsOn(prepareNpmTestData)
|
||||||
}
|
}
|
||||||
|
|
||||||
val runMocha by task<NpmTask> {
|
val mochaTest by task<NpmTask> {
|
||||||
workingDir.set(buildDir)
|
workingDir.set(buildDir)
|
||||||
|
|
||||||
val target = if (project.hasProperty("teamcity")) "runOnTeamcity" else "test"
|
val target = if (project.hasProperty("teamcity")) "runOnTeamcity" else "test"
|
||||||
@@ -426,16 +431,20 @@ val runMocha by task<NpmTask> {
|
|||||||
|
|
||||||
ignoreExitValue.set(kotlinBuildProperties.ignoreTestFailures)
|
ignoreExitValue.set(kotlinBuildProperties.ignoreTestFailures)
|
||||||
|
|
||||||
dependsOn(npmInstall, "test")
|
dependsOn(npmInstall)
|
||||||
|
|
||||||
val check by tasks
|
environment.set(
|
||||||
check.dependsOn(this)
|
mapOf(
|
||||||
|
"KOTLIN_JS_LOCATION" to rootDir.resolve("dist/js/kotlin.js").toString(),
|
||||||
|
"KOTLIN_JS_TEST_LOCATION" to rootDir.resolve("dist/js/kotlin-test.js").toString(),
|
||||||
|
"BOX_FLAG_LOCATION" to rootDir.resolve("compiler/testData/jsBoxFlag.js").toString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
environment.set(mapOf(
|
val runMocha by tasks.registering {
|
||||||
"KOTLIN_JS_LOCATION" to rootDir.resolve("dist/js/kotlin.js").toString(),
|
dependsOn(test)
|
||||||
"KOTLIN_JS_TEST_LOCATION" to rootDir.resolve("dist/js/kotlin-test.js").toString(),
|
finalizedBy(mochaTest)
|
||||||
"BOX_FLAG_LOCATION" to rootDir.resolve("compiler/testData/jsBoxFlag.js").toString()
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
projectTest("wasmTest", true) {
|
projectTest("wasmTest", true) {
|
||||||
@@ -465,3 +474,7 @@ projectTest("invalidationTest", jUnitMode = JUnitMode.JUnit4) {
|
|||||||
systemProperty("kotlin.js.stdlib.klib.path", "libraries/stdlib/js-ir/build/libs/kotlin-stdlib-js-ir-js-$version.klib")
|
systemProperty("kotlin.js.stdlib.klib.path", "libraries/stdlib/js-ir/build/libs/kotlin-stdlib-js-ir-js-$version.klib")
|
||||||
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
systemProperty("kotlin.js.test.root.out.dir", "$buildDir/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tasks.named("check") {
|
||||||
|
dependsOn(runMocha)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user