diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt index b18907c3f34..201b31ea084 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinWasmGradlePluginIT.kt @@ -5,30 +5,11 @@ package org.jetbrains.kotlin.gradle -import com.google.gson.Gson -import com.google.gson.JsonNull -import com.google.gson.JsonObject -import org.gradle.testkit.runner.BuildResult import org.gradle.util.GradleVersion -import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution -import org.jetbrains.kotlin.gradle.targets.js.ir.KLIB_TYPE -import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject -import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson -import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson -import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.STORE_YARN_LOCK_NAME -import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.UPGRADE_YARN_LOCK -import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnLockCopyTask.Companion.YARN_LOCK_MISMATCH_MESSAGE -import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE import org.jetbrains.kotlin.gradle.testbase.* -import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_6 -import org.jetbrains.kotlin.gradle.util.modify import org.junit.jupiter.api.DisplayName -import org.junit.jupiter.api.condition.DisabledIf import java.nio.file.Files -import java.util.zip.ZipFile -import kotlin.io.path.* -import kotlin.streams.toList -import kotlin.test.* +import kotlin.test.assertTrue @MppGradlePluginTests class KotlinWasmGradlePluginIT : KGPBaseTest() { @@ -39,14 +20,27 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() { project("new-mpp-wasm-wasi-test", gradleVersion) { buildGradleKts.modify(::transformBuildScriptWithPluginsDsl) - build( - // TODO remove as soon as KT-61971 fixed - ":kotlinNodeJsSetup", - ":wasmWasiTest" - ) { + build(":wasmWasiTest") { + assertTasksExecuted(":kotlinNodeJsSetup") assertTasksExecuted(":compileKotlinWasmWasi") assertTasksExecuted(":wasmWasiNodeTest") } + + projectPath.resolve("src/wasmWasiTest/kotlin/Test.kt").modify { + it.replace( + "fun test2() = assertEquals(foo(), 2)", + "fun test2() = assertEquals(foo(), 2)" + "\n" + + """ + @Test + fun test3() = assertEquals(foo(), 3) + """ + ) + } + + buildAndFail(":wasmWasiTest") { + assertTasksUpToDate(":compileKotlinWasmWasi") + assertTasksFailed(":wasmWasiNodeTest") + } } } @@ -79,8 +73,10 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() { assertTasksExecuted(":compileProductionExecutableKotlinWasmWasi") assertTasksExecuted(":compileProductionExecutableKotlinWasmWasiOptimize") - val original = projectPath.resolve("build/compileSync/wasmWasi/main/productionExecutable/kotlin/new-mpp-wasm-wasi-test-wasm-wasi.wasm") - val optimized = projectPath.resolve("build/compileSync/wasmWasi/main/productionExecutable/optimized/new-mpp-wasm-wasi-test-wasm-wasi.wasm") + val original = + projectPath.resolve("build/compileSync/wasmWasi/main/productionExecutable/kotlin/new-mpp-wasm-wasi-test-wasm-wasi.wasm") + val optimized = + projectPath.resolve("build/compileSync/wasmWasi/main/productionExecutable/optimized/new-mpp-wasm-wasi-test-wasm-wasi.wasm") assertTrue { Files.size(original) > Files.size(optimized) } @@ -101,8 +97,10 @@ class KotlinWasmGradlePluginIT : KGPBaseTest() { assertTasksExecuted(":compileProductionExecutableKotlinWasmJs") assertTasksExecuted(":compileProductionExecutableKotlinWasmJsOptimize") - val original = projectPath.resolve("build/compileSync/wasmJs/main/productionExecutable/kotlin/redefined-wasm-module-name.wasm") - val optimized = projectPath.resolve("build/compileSync/wasmJs/main/productionExecutable/optimized/redefined-wasm-module-name.wasm") + val original = + projectPath.resolve("build/compileSync/wasmJs/main/productionExecutable/kotlin/redefined-wasm-module-name.wasm") + val optimized = + projectPath.resolve("build/compileSync/wasmJs/main/productionExecutable/optimized/redefined-wasm-module-name.wasm") assertTrue { Files.size(original) > Files.size(optimized) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiMain/kotlin/foo.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiMain/kotlin/foo.kt index 73880e2f2b0..da63ad63b9c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiMain/kotlin/foo.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiMain/kotlin/foo.kt @@ -1,3 +1,3 @@ package my.pack.name -fun foo(): Int = 2 \ No newline at end of file +fun foo(): Int = 1 \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiTest/kotlin/Test.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiTest/kotlin/Test.kt index 038841e1c8d..b76872ed793 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiTest/kotlin/Test.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-wasm-wasi-test/src/wasmWasiTest/kotlin/Test.kt @@ -6,11 +6,11 @@ import kotlin.test.assertEquals class WasmTest { @Test - fun test1() = assertEquals(foo(), 2) + fun test1() = assertEquals(foo(), 1) @Test @Ignore - fun test2() = assertEquals(foo(), 1) + fun test2() = assertEquals(foo(), 2) @Ignore class InnerIgnored { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt index 2c58a8b9144..b1f101ae135 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/ir/KotlinNodeJsIr.kt @@ -58,11 +58,11 @@ abstract class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) : } override fun configureTestDependencies(test: KotlinJsTest) { + test.dependsOn(nodeJsTaskProviders.nodeJsSetupTaskProvider) if (target.wasmTargetType != KotlinWasmTargetType.WASI) { test.dependsOn( nodeJsTaskProviders.npmInstallTaskProvider, nodeJsTaskProviders.storeYarnLockTaskProvider, - nodeJsTaskProviders.nodeJsSetupTaskProvider ) } }