[Gradle, JS] Fix parallel tasks test
This commit is contained in:
+53
-15
@@ -67,17 +67,35 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
@Test
|
@Test
|
||||||
fun testLibAndApp() = doTestLibAndApp(
|
fun testLibAndApp() = doTestLibAndApp(
|
||||||
"sample-lib",
|
"sample-lib",
|
||||||
"sample-app"
|
"sample-app",
|
||||||
|
JsMode.LEGACY
|
||||||
|
)
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testLibAndAppJsIr() = doTestLibAndApp(
|
||||||
|
"sample-lib",
|
||||||
|
"sample-app",
|
||||||
|
JsMode.IR
|
||||||
)
|
)
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testLibAndAppWithGradleKotlinDsl() = doTestLibAndApp(
|
fun testLibAndAppWithGradleKotlinDsl() = doTestLibAndApp(
|
||||||
"sample-lib-gradle-kotlin-dsl",
|
"sample-lib-gradle-kotlin-dsl",
|
||||||
"sample-app-gradle-kotlin-dsl"
|
"sample-app-gradle-kotlin-dsl",
|
||||||
|
JsMode.LEGACY
|
||||||
|
)
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun testLibAndAppWithGradleKotlinDslJsIr() = doTestLibAndApp(
|
||||||
|
"sample-lib-gradle-kotlin-dsl",
|
||||||
|
"sample-app-gradle-kotlin-dsl",
|
||||||
|
JsMode.IR
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun doTestLibAndApp(
|
private fun doTestLibAndApp(
|
||||||
libProjectName: String, appProjectName: String
|
libProjectName: String,
|
||||||
|
appProjectName: String,
|
||||||
|
jsMode: JsMode
|
||||||
) {
|
) {
|
||||||
val libProject = transformProjectWithPluginsDsl(libProjectName, directoryPrefix = "new-mpp-lib-and-app")
|
val libProject = transformProjectWithPluginsDsl(libProjectName, directoryPrefix = "new-mpp-lib-and-app")
|
||||||
val appProject = transformProjectWithPluginsDsl(appProjectName, directoryPrefix = "new-mpp-lib-and-app")
|
val appProject = transformProjectWithPluginsDsl(appProjectName, directoryPrefix = "new-mpp-lib-and-app")
|
||||||
@@ -87,13 +105,17 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
listOf("Jvm6", "NodeJs", "Metadata", "Wasm32", nativeHostTargetName.capitalize()).map { ":compileKotlin$it" }
|
listOf("Jvm6", "NodeJs", "Metadata", "Wasm32", nativeHostTargetName.capitalize()).map { ":compileKotlin$it" }
|
||||||
|
|
||||||
with(libProject) {
|
with(libProject) {
|
||||||
build("publish") {
|
build(
|
||||||
|
"publish",
|
||||||
|
options = defaultBuildOptions().copy(jsMode = jsMode)
|
||||||
|
) {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertTasksExecuted(*compileTasksNames.toTypedArray(), ":jvm6Jar", ":nodeJsJar", ":metadataJar")
|
assertTasksExecuted(*compileTasksNames.toTypedArray(), ":jvm6Jar", ":nodeJsJar", ":metadataJar")
|
||||||
|
|
||||||
val groupDir = projectDir.resolve("repo/com/example")
|
val groupDir = projectDir.resolve("repo/com/example")
|
||||||
val jvmJarName = "sample-lib-jvm6/1.0/sample-lib-jvm6-1.0.jar"
|
val jvmJarName = "sample-lib-jvm6/1.0/sample-lib-jvm6-1.0.jar"
|
||||||
val jsJarName = "sample-lib-nodejs/1.0/sample-lib-nodejs-1.0.jar"
|
val jsExtension = if (jsMode == JsMode.LEGACY) "jar" else "klib"
|
||||||
|
val jsJarName = "sample-lib-nodejs/1.0/sample-lib-nodejs-1.0.$jsExtension"
|
||||||
val metadataJarName = "sample-lib-metadata/1.0/sample-lib-metadata-1.0.jar"
|
val metadataJarName = "sample-lib-metadata/1.0/sample-lib-metadata-1.0.jar"
|
||||||
val wasmKlibName = "sample-lib-wasm32/1.0/sample-lib-wasm32-1.0.klib"
|
val wasmKlibName = "sample-lib-wasm32/1.0/sample-lib-wasm32-1.0.klib"
|
||||||
val nativeKlibName = "sample-lib-$nativeHostTargetName/1.0/sample-lib-$nativeHostTargetName-1.0.klib"
|
val nativeKlibName = "sample-lib-$nativeHostTargetName/1.0/sample-lib-$nativeHostTargetName-1.0.klib"
|
||||||
@@ -121,12 +143,19 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
Assert.assertTrue("com/example/lib/CommonKt.class" in jvmJarEntries)
|
Assert.assertTrue("com/example/lib/CommonKt.class" in jvmJarEntries)
|
||||||
Assert.assertTrue("com/example/lib/MainKt.class" in jvmJarEntries)
|
Assert.assertTrue("com/example/lib/MainKt.class" in jvmJarEntries)
|
||||||
|
|
||||||
val jsJar = ZipFile(groupDir.resolve(jsJarName))
|
when (jsMode) {
|
||||||
val compiledJs = jsJar.getInputStream(jsJar.getEntry("sample-lib.js")).reader().readText()
|
JsMode.LEGACY -> {
|
||||||
Assert.assertTrue("function id(" in compiledJs)
|
val jsJar = ZipFile(groupDir.resolve(jsJarName))
|
||||||
Assert.assertTrue("function idUsage(" in compiledJs)
|
val compiledJs = jsJar.getInputStream(jsJar.getEntry("sample-lib.js")).reader().readText()
|
||||||
Assert.assertTrue("function expectedFun(" in compiledJs)
|
Assert.assertTrue("function id(" in compiledJs)
|
||||||
Assert.assertTrue("function main(" in compiledJs)
|
Assert.assertTrue("function idUsage(" in compiledJs)
|
||||||
|
Assert.assertTrue("function expectedFun(" in compiledJs)
|
||||||
|
Assert.assertTrue("function main(" in compiledJs)
|
||||||
|
}
|
||||||
|
JsMode.IR -> {
|
||||||
|
groupDir.resolve(jsJarName).exists()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val metadataJarEntries = ZipFile(groupDir.resolve(metadataJarName)).entries().asSequence().map { it.name }.toSet()
|
val metadataJarEntries = ZipFile(groupDir.resolve(metadataJarName)).entries().asSequence().map { it.name }.toSet()
|
||||||
Assert.assertTrue("com/example/lib/CommonKt.kotlin_metadata" in metadataJarEntries)
|
Assert.assertTrue("com/example/lib/CommonKt.kotlin_metadata" in metadataJarEntries)
|
||||||
@@ -171,9 +200,11 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
Assert.assertTrue(resolve("com/example/app/AKt.kotlin_metadata").exists())
|
Assert.assertTrue(resolve("com/example/app/AKt.kotlin_metadata").exists())
|
||||||
}
|
}
|
||||||
|
|
||||||
projectDir.resolve(targetClassesDir("nodeJs")).resolve("sample-app.js").readText().run {
|
if (jsMode == JsMode.LEGACY) {
|
||||||
Assert.assertTrue(contains("console.info"))
|
projectDir.resolve(targetClassesDir("nodeJs")).resolve("sample-app.js").readText().run {
|
||||||
Assert.assertTrue(contains("function nodeJsMain("))
|
Assert.assertTrue(contains("console.info"))
|
||||||
|
Assert.assertTrue(contains("function nodeJsMain("))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
projectDir.resolve(targetClassesDir("wasm32")).run {
|
projectDir.resolve(targetClassesDir("wasm32")).run {
|
||||||
@@ -209,11 +240,18 @@ class NewMultiplatformIT : BaseGradleIT() {
|
|||||||
it.replace(Regex("""\.version\(.*\)"""), "")
|
it.replace(Regex("""\.version\(.*\)"""), "")
|
||||||
}
|
}
|
||||||
|
|
||||||
build("clean", "assemble", "--rerun-tasks") {
|
build(
|
||||||
|
"clean",
|
||||||
|
"assemble",
|
||||||
|
"--rerun-tasks",
|
||||||
|
options = defaultBuildOptions().copy(jsMode = jsMode)
|
||||||
|
) {
|
||||||
checkAppBuild()
|
checkAppBuild()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (jsMode != JsMode.LEGACY) return
|
||||||
|
|
||||||
with(oldStyleAppProject) {
|
with(oldStyleAppProject) {
|
||||||
setupWorkingDir()
|
setupWorkingDir()
|
||||||
gradleBuildScript().appendText("\nallprojects { repositories { maven { url '$libLocalRepoUri' } } }")
|
gradleBuildScript().appendText("\nallprojects { repositories { maven { url '$libLocalRepoUri' } } }")
|
||||||
|
|||||||
Reference in New Issue
Block a user