diff --git a/js/js.tests/build.gradle.kts b/js/js.tests/build.gradle.kts index b425a896d9b..29bc3712d69 100644 --- a/js/js.tests/build.gradle.kts +++ b/js/js.tests/build.gradle.kts @@ -107,6 +107,7 @@ if (kotlinBuildProperties.isInJpsBuildIdeaSync) { enum class OsName { WINDOWS, MAC, LINUX, UNKNOWN } enum class OsArch { X86_32, X86_64, ARM64, UNKNOWN } data class OsType(val name: OsName, val arch: OsArch) + val currentOsType = run { val gradleOs = OperatingSystem.current() val osName = when { @@ -275,8 +276,10 @@ fun Test.setupV8() { fun Test.setUpJsBoxTests(jsEnabled: Boolean, jsIrEnabled: Boolean, firEnabled: Boolean) { setupV8() - if (jsIrEnabled) + if (jsIrEnabled) { setupNodeJs() + dependsOn(npmInstall) + } 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("overwrite.output", project.providers.gradleProperty("overwrite.output") - .forUseAtConfigurationTime().orNull ?: "false") + systemProperty( + "overwrite.output", project.providers.gradleProperty("overwrite.output") + .forUseAtConfigurationTime().orNull ?: "false" + ) val rootLocalProperties = Properties().apply { 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) 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) { include("package.json") include("test.js") @@ -414,11 +419,11 @@ val prepareMochaTestData by tasks.registering(Copy::class) { } val npmInstall by tasks.getting(NpmTask::class) { - dependsOn(prepareMochaTestData) workingDir.set(buildDir) + dependsOn(prepareNpmTestData) } -val runMocha by task { +val mochaTest by task { workingDir.set(buildDir) val target = if (project.hasProperty("teamcity")) "runOnTeamcity" else "test" @@ -426,16 +431,20 @@ val runMocha by task { ignoreExitValue.set(kotlinBuildProperties.ignoreTestFailures) - dependsOn(npmInstall, "test") + dependsOn(npmInstall) - val check by tasks - check.dependsOn(this) + environment.set( + 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( - "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() - )) +val runMocha by tasks.registering { + dependsOn(test) + finalizedBy(mochaTest) } 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.test.root.out.dir", "$buildDir/") } + +tasks.named("check") { + dependsOn(runMocha) +} \ No newline at end of file