[Gradle] Test composite build import with enabled CInterop commonization

On non-mac machines. With projects that have enabled MacOS targets.

In this scenario we don't want to ruin IDE UX for users that just
want to use IDE and work with project parts that is not related to apple

^KT-63197
This commit is contained in:
Anton Lakotka
2023-11-14 19:52:28 +01:00
committed by Space Team
parent 9ad7b00613
commit 9fc7d3693e
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency.Type.Regu
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.*
import org.jetbrains.kotlin.gradle.testbase.*
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.konan.target.HostManager
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.OS
import kotlin.test.assertEquals
@@ -242,6 +243,41 @@ class MppCompositeBuildIT : KGPBaseTest() {
}
}
@GradleTest
fun `test - sample2-withHostSpecificTargets - import cinterop dependencies`(gradleVersion: GradleVersion) {
val producer = project("mpp-composite-build/sample2-withHostSpecificTargets/producerBuild", gradleVersion) {
if (HostManager.hostIsMac) {
subProject("producerA").buildGradleKts.append(
"""
tasks.configureEach {
if (name == "iosArm64MetadataJar" || name == "iosX64MetadataJar") {
enabled = false
}
}
""".trimIndent()
)
}
}
project("mpp-composite-build/sample2-withHostSpecificTargets/consumerBuild", gradleVersion) {
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
gradleProperties.append("kotlin.mpp.enableCInteropCommonization=true")
build("cleanNativeDistributionCommonization")
build(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde") {
if (HostManager.hostIsMac) {
assertTasksSkipped(":producerBuild:producerA:iosArm64MetadataJar")
assertTasksSkipped(":producerBuild:producerA:iosX64MetadataJar")
} else {
assertTasksNotExecuted(":producerBuild:producerA:iosArm64MetadataJar")
assertTasksNotExecuted(":producerBuild:producerA:iosX64MetadataJar")
}
assertTasksExecuted(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde")
}
}
}
@GradleTest
fun `test - sample3-KT-56198-singleTargetMpp-includingJvm - ide dependencies`(gradleVersion: GradleVersion) {
val producer = project("mpp-composite-build/sample3-KT-56198-singleTargetMpp-includingJvm/producerBuild", gradleVersion)