[Gradle, JS] Fix associated compilations test and adopt to js ir
This commit is contained in:
+48
-27
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle
|
|||||||
import org.gradle.api.logging.LogLevel
|
import org.gradle.api.logging.LogLevel
|
||||||
import org.jdom.input.SAXBuilder
|
import org.jdom.input.SAXBuilder
|
||||||
import org.jetbrains.kotlin.gradle.internals.*
|
import org.jetbrains.kotlin.gradle.internals.*
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.JsMode
|
||||||
import org.jetbrains.kotlin.gradle.plugin.ProjectLocalConfigurations
|
import org.jetbrains.kotlin.gradle.plugin.ProjectLocalConfigurations
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmWithJavaTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmWithJavaTargetPreset
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
||||||
@@ -2220,37 +2221,57 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAssociateCompilations() = with(Project("new-mpp-associate-compilations", GradleVersionRequired.AtLeast("5.0"))) {
|
fun testAssociateCompilations() {
|
||||||
setupWorkingDir()
|
testAssociateCompilationsImpl(false)
|
||||||
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
}
|
||||||
|
|
||||||
val tasks = listOf("jvm", "js", nativeHostTargetName).map { ":compileIntegrationTestKotlin${it.capitalize()}" }
|
@Test
|
||||||
|
fun testAssociateCompilationsWithJsIr() {
|
||||||
|
testAssociateCompilationsImpl(true)
|
||||||
|
}
|
||||||
|
|
||||||
build(*tasks.toTypedArray()) {
|
private fun testAssociateCompilationsImpl(jsIr: Boolean) {
|
||||||
assertSuccessful()
|
with(Project("new-mpp-associate-compilations", GradleVersionRequired.AtLeast("5.0"))) {
|
||||||
assertTasksExecuted(*tasks.toTypedArray())
|
setupWorkingDir()
|
||||||
|
gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
|
||||||
|
if (!jsIr) {
|
||||||
|
gradleProperties().appendText(jsMode(JsMode.LEGACY))
|
||||||
|
}
|
||||||
|
|
||||||
// JVM:
|
val tasks = listOf("jvm", "js", nativeHostTargetName).map { ":compileIntegrationTestKotlin${it.capitalize()}" }
|
||||||
checkBytecodeContains(
|
|
||||||
projectDir.resolve("build/classes/kotlin/jvm/integrationTest/com/example/HelloIntegrationTest.class"),
|
build(*tasks.toTypedArray()) {
|
||||||
"Hello.internalFun\$new_mpp_associate_compilations",
|
assertSuccessful()
|
||||||
"HelloTest.internalTestFun\$new_mpp_associate_compilations"
|
assertTasksExecuted(*tasks.toTypedArray())
|
||||||
|
|
||||||
|
// JVM:
|
||||||
|
checkBytecodeContains(
|
||||||
|
projectDir.resolve("build/classes/kotlin/jvm/integrationTest/com/example/HelloIntegrationTest.class"),
|
||||||
|
"Hello.internalFun\$new_mpp_associate_compilations",
|
||||||
|
"HelloTest.internalTestFun\$new_mpp_associate_compilations"
|
||||||
|
)
|
||||||
|
assertFileExists("build/classes/kotlin/jvm/integrationTest/META-INF/new-mpp-associate-compilations.kotlin_module")
|
||||||
|
|
||||||
|
// JS:
|
||||||
|
assertFileExists(
|
||||||
|
if (jsIr) {
|
||||||
|
"build/classes/kotlin/js/integrationTest/manifest"
|
||||||
|
} else {
|
||||||
|
"build/classes/kotlin/js/integrationTest/new-mpp-associate-compilations_integrationTest.js"
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Native:
|
||||||
|
assertFileExists("build/classes/kotlin/$nativeHostTargetName/integrationTest/new-mpp-associate-compilations_integrationTest.klib")
|
||||||
|
}
|
||||||
|
|
||||||
|
gradleBuildScript().appendText(
|
||||||
|
"\nkotlin.sourceSets { getByName(\"commonTest\").requiresVisibilityOf(getByName(\"commonIntegrationTest\")) }"
|
||||||
)
|
)
|
||||||
assertFileExists("build/classes/kotlin/jvm/integrationTest/META-INF/new-mpp-associate-compilations.kotlin_module")
|
build {
|
||||||
|
assertFailed()
|
||||||
// JS:
|
assertContains(UnsatisfiedSourceSetVisibilityException::class.java.simpleName)
|
||||||
assertFileExists("build/classes/kotlin/js/integrationTest/new-mpp-associate-compilations_integrationTest.js")
|
}
|
||||||
|
|
||||||
// Native:
|
|
||||||
assertFileExists("build/classes/kotlin/$nativeHostTargetName/integrationTest/new-mpp-associate-compilations_integrationTest.klib")
|
|
||||||
}
|
|
||||||
|
|
||||||
gradleBuildScript().appendText(
|
|
||||||
"\nkotlin.sourceSets { getByName(\"commonTest\").requiresVisibilityOf(getByName(\"commonIntegrationTest\")) }"
|
|
||||||
)
|
|
||||||
build {
|
|
||||||
assertFailed()
|
|
||||||
assertContains(UnsatisfiedSourceSetVisibilityException::class.java.simpleName)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user