From 4e705d2f407bad39a3540f0a4dedb7877eadf1ae Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 7 Feb 2023 14:05:45 +0100 Subject: [PATCH] Fix flaky JS tests. They are disabling error for using JS/Legacy backend via System property by passing it to the Kotlin Daemon. But daemon may already be started and not contain such property. Workaround for now is to use 'in-process' compilation for such cases. --- .../kotlin/gradle/NewMultiplatformIT.kt | 50 +++++++++++++++++++ .../new-mpp-jvm-js-ic/app/gradle.properties | 1 - .../configure-targets.gradle | 7 ++- .../new-mpp-jvm-js-ic/gradle.properties | 2 - .../new-mpp-jvm-js-ic/lib/gradle.properties | 1 - 5 files changed, 53 insertions(+), 8 deletions(-) delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/app/gradle.properties delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/gradle.properties delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/lib/gradle.properties diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index ae72c90db45..682157de494 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -322,6 +322,13 @@ class NewMultiplatformIT : BaseGradleIT() { ).map { ":compileKotlin$it" } with(libProject) { + gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) build( "publish", options = defaultBuildOptions().copy(jsCompilerType = jsCompilerType) @@ -378,6 +385,14 @@ class NewMultiplatformIT : BaseGradleIT() { with(appProject) { setupWorkingDir() + gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) + // we use `maven { setUrl(...) }` because this syntax actually works both for Groovy and Kotlin DSLs in Gradle gradleBuildScript().appendText("\nrepositories { maven { setUrl(\"$libLocalRepoUri\") } }") @@ -973,6 +988,14 @@ class NewMultiplatformIT : BaseGradleIT() { val appProject = Project("sample-app", gradleVersion, "new-mpp-lib-and-app") val buildOptions = hmppFlags.buildOptions + libProject.setupWorkingDir() + libProject.gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) @Suppress("DEPRECATION") libProject.build( "publish", @@ -986,6 +1009,14 @@ class NewMultiplatformIT : BaseGradleIT() { with(appProject) { setupWorkingDir() + gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) + val pathPrefix = "metadataDependency: " gradleBuildScript().appendText( @@ -1463,6 +1494,15 @@ class NewMultiplatformIT : BaseGradleIT() { @Test fun testJsDceInMpp() = with(Project("new-mpp-js-dce", gradleVersion)) { + setupWorkingDir() + gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) + @Suppress("DEPRECATION") build( "runRhino", @@ -1593,6 +1633,8 @@ class NewMultiplatformIT : BaseGradleIT() { @Test fun testIncrementalCompilation() = with(Project("new-mpp-jvm-js-ic", gradleVersion)) { + setupWorkingDir() + build("build") { assertSuccessful() } @@ -1634,6 +1676,14 @@ class NewMultiplatformIT : BaseGradleIT() { setupWorkingDir() gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + gradleProperties().appendText( + """ + + systemProp.kotlin.js.compiler.legacy.force_enabled=true + kotlin.compiler.execution.strategy=in-process + """.trimIndent() + ) + val groupDir = "build/repo/com/example/" build(":mpp-lib:publish") { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/app/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/app/gradle.properties deleted file mode 100644 index ee12306eea2..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/app/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -kotlin.daemon.jvmargs=-Dkotlin.js.compiler.legacy.force_enabled=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/configure-targets.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/configure-targets.gradle index f5ddc55927b..8ef48570373 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/configure-targets.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/configure-targets.gradle @@ -1,10 +1,9 @@ apply plugin: "kotlin-multiplatform" kotlin { - targets { - fromPreset(presets.jvm, 'jvm') - fromPreset(presets.js, 'js') - } + jvm {} + js(IR) {} + sourceSets { commonMain { dependencies { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/gradle.properties deleted file mode 100644 index 6b8a3647ea2..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/gradle.properties +++ /dev/null @@ -1,2 +0,0 @@ -kotlin.js.compiler=legacy -kotlin.daemon.jvmargs=-Dkotlin.js.compiler.legacy.force_enabled=true diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/lib/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/lib/gradle.properties deleted file mode 100644 index ee12306eea2..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-jvm-js-ic/lib/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -kotlin.daemon.jvmargs=-Dkotlin.js.compiler.legacy.force_enabled=true \ No newline at end of file