[Gradle, Wasm] Tests can be up-to-date, and use by default chrome headless
^KT-62633 fixed
This commit is contained in:
committed by
Space Team
parent
b2fb37043d
commit
405a502675
+48
-2
@@ -7,8 +7,10 @@ package org.jetbrains.kotlin.gradle
|
||||
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.jetbrains.kotlin.gradle.util.modify
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import java.nio.file.Files
|
||||
import kotlin.io.path.writeText
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
@MppGradlePluginTests
|
||||
@@ -26,6 +28,10 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
|
||||
assertTasksExecuted(":wasmWasiNodeTest")
|
||||
}
|
||||
|
||||
build(":wasmWasiTest") {
|
||||
assertTasksUpToDate(":kotlinNodeJsSetup", ":compileKotlinWasmWasi", ":wasmWasiNodeTest")
|
||||
}
|
||||
|
||||
projectPath.resolve("src/wasmWasiTest/kotlin/Test.kt").modify {
|
||||
it.replace(
|
||||
"fun test2() = assertEquals(foo(), 2)",
|
||||
@@ -44,6 +50,46 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Check js target")
|
||||
@GradleTest
|
||||
fun jsTarget(gradleVersion: GradleVersion) {
|
||||
project("new-mpp-wasm-test", gradleVersion) {
|
||||
buildGradleKts.modify {
|
||||
transformBuildScriptWithPluginsDsl(it)
|
||||
.replace("<JsEngine>", "nodejs")
|
||||
.replace("<ApplyBinaryen>", "")
|
||||
}
|
||||
|
||||
kotlinSourcesDir("wasmJsTest").resolve("Test.kt").writeText(
|
||||
"""
|
||||
package my.pack.name
|
||||
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
class WasmTest {
|
||||
@Test
|
||||
fun test1() = assertEquals(foo(), 2)
|
||||
}
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
projectPath.resolve(".yarnrc").toFile().writeText(
|
||||
"--ignore-engines true"
|
||||
)
|
||||
|
||||
build("build") {
|
||||
assertTasksExecuted(":kotlinNodeJsSetup")
|
||||
assertTasksExecuted(":compileKotlinWasmJs")
|
||||
assertTasksExecuted(":wasmJsNodeTest")
|
||||
}
|
||||
|
||||
build(":wasmJsTest") {
|
||||
assertTasksUpToDate(":kotlinNodeJsSetup", ":compileKotlinWasmJs", ":wasmJsNodeTest")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Check wasi target run")
|
||||
@GradleTest
|
||||
fun wasiRun(gradleVersion: GradleVersion) {
|
||||
@@ -72,7 +118,7 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Check wasi target")
|
||||
@DisplayName("Check wasi target with binaryen")
|
||||
@GradleTest
|
||||
fun wasiTargetWithBinaryen(gradleVersion: GradleVersion) {
|
||||
project("new-mpp-wasm-wasi-test", gradleVersion) {
|
||||
@@ -96,7 +142,7 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Check js target")
|
||||
@DisplayName("Check js target with binaryen")
|
||||
@GradleTest
|
||||
fun jsTargetWithBinaryen(gradleVersion: GradleVersion) {
|
||||
project("new-mpp-wasm-js", gradleVersion) {
|
||||
|
||||
+1
-5
@@ -61,11 +61,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
override fun configureDefaultTestFramework(test: KotlinJsTest) {
|
||||
if (test.testFramework == null) {
|
||||
test.useKarma {
|
||||
if (compilation.platformType == KotlinPlatformType.wasm) {
|
||||
useChromeHeadlessWasmGc()
|
||||
} else {
|
||||
useChromeHeadless()
|
||||
}
|
||||
useChromeHeadless()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-5
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJv
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
||||
import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner
|
||||
import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat
|
||||
import org.jetbrains.kotlin.gradle.utils.getValue
|
||||
import java.nio.file.Path
|
||||
|
||||
@@ -36,10 +35,6 @@ internal class KotlinWasmD8(private val kotlinJsTest: KotlinJsTest) : KotlinJsTe
|
||||
override val workingDir: Path
|
||||
get() = npmProjectDir.toPath()
|
||||
|
||||
init {
|
||||
kotlinJsTest.doNotTrackStateCompat("Should always re-run for WASM")
|
||||
}
|
||||
|
||||
override fun createTestExecutionSpec(
|
||||
task: KotlinJsTest,
|
||||
forkOptions: ProcessForkOptions,
|
||||
|
||||
-5
@@ -18,7 +18,6 @@ import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
||||
import org.jetbrains.kotlin.gradle.targets.js.writeWasmUnitTestRunner
|
||||
import org.jetbrains.kotlin.gradle.utils.doNotTrackStateCompat
|
||||
import org.jetbrains.kotlin.gradle.utils.getValue
|
||||
import java.nio.file.Path
|
||||
|
||||
@@ -45,10 +44,6 @@ internal class KotlinWasmNode(private val kotlinJsTest: KotlinJsTest) : KotlinJs
|
||||
kotlinJsTest.inputFileProperty.get().asFile.toPath().parent
|
||||
}
|
||||
|
||||
init {
|
||||
kotlinJsTest.doNotTrackStateCompat("Should always re-run for WASM")
|
||||
}
|
||||
|
||||
override fun createTestExecutionSpec(
|
||||
task: KotlinJsTest,
|
||||
forkOptions: ProcessForkOptions,
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ data class KarmaClient(
|
||||
val args: MutableList<String> = mutableListOf()
|
||||
)
|
||||
|
||||
class CustomLauncher(var base: String) {
|
||||
data class CustomLauncher(var base: String) {
|
||||
val flags = mutableListOf<String>()
|
||||
var debug: Boolean? = null
|
||||
}
|
||||
|
||||
+1
@@ -201,6 +201,7 @@ class KotlinKarma(
|
||||
|
||||
fun useChromeCanaryHeadless() = useChromeLike("ChromeCanaryHeadless")
|
||||
|
||||
@Deprecated("Chrome supports wasm GC by default, so you can use useChromeHeadless", replaceWith = ReplaceWith("useChromHeadless"))
|
||||
fun useChromeHeadlessWasmGc() {
|
||||
val chromeCanaryHeadlessWasmGc = "ChromeHeadlessWasmGc"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user