[Gradle] Implement commonizer test with isolated jvm subproject

^KT-50592
This commit is contained in:
sebastian.sellmair
2021-12-30 11:09:18 +01:00
committed by Space
parent 8b57675002
commit 32177b2cd2
6 changed files with 41 additions and 2 deletions
@@ -294,7 +294,7 @@ abstract class BaseGradleIT {
open val resourcesRoot = File(resourcesRootFile, "testProject/$resourceDirName")
val projectDir = File(workingDir.canonicalFile, projectName)
open fun setupWorkingDir(enableCacheRedirector: Boolean = true) {
open fun setupWorkingDir(enableCacheRedirector: Boolean = true, applyAndroidTestFixes: Boolean = true) {
if (!projectDir.isDirectory || projectDir.listFiles().isEmpty()) {
copyRecursively(this.resourcesRoot, workingDir)
if (addHeapDumpOptions) {
@@ -304,7 +304,7 @@ abstract class BaseGradleIT {
projectDir.toPath().apply {
addPluginManagementToSettings()
if (enableCacheRedirector) enableCacheRedirector()
applyAndroidTestFixes()
if (applyAndroidTestFixes) applyAndroidTestFixes()
}
}
}
@@ -132,6 +132,17 @@ class CommonizerHierarchicalIT : BaseGradleIT() {
}
}
@Test
fun `test KT-50592 - isolated jvm subproject - should not fail commonization`() {
with(Project("commonize-kt-50592-withIsolatedJvmSubproject")) {
setupWorkingDir(applyAndroidTestFixes = false) // Necessary to ensure separated classpath
build("commonize") {
assertSuccessful()
assertTasksExecuted(":commonizeNativeDistribution")
}
}
}
private object Os {
private val os = OperatingSystem.current()
val canCompileApple get() = os.isMacOsX
@@ -0,0 +1,6 @@
allprojects {
repositories {
mavenLocal()
mavenCentral()
}
}
@@ -0,0 +1,17 @@
plugins {
kotlin("multiplatform")
}
kotlin {
linuxArm64()
linuxX64()
val commonMain by sourceSets.getting
val linuxMain by sourceSets.creating
val linuxArm64Main by sourceSets.getting
val linuxX64Main by sourceSets.getting
linuxMain.dependsOn(commonMain)
linuxArm64Main.dependsOn(linuxMain)
linuxX64Main.dependsOn(linuxMain)
}