diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index c0c29c6893b..0af40117ac6 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -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() } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerHierarchicalIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerHierarchicalIT.kt index c13bcc11193..0d422a96798 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerHierarchicalIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerHierarchicalIT.kt @@ -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 diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/build.gradle.kts new file mode 100644 index 00000000000..5948671485a --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/build.gradle.kts @@ -0,0 +1,6 @@ +allprojects { + repositories { + mavenLocal() + mavenCentral() + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/jvm/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/jvm/build.gradle.kts new file mode 100644 index 00000000000..444baaa3c8c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/jvm/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + kotlin("jvm") +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/multiplatform/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/multiplatform/build.gradle.kts new file mode 100644 index 00000000000..691c18166e6 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/multiplatform/build.gradle.kts @@ -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) +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/settings.gradle.kts new file mode 100644 index 00000000000..f8163ad242c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/commonize-kt-50592-withIsolatedJvmSubproject/settings.gradle.kts @@ -0,0 +1,2 @@ +include("jvm") +include("multiplatform")