[MPP] Add a test for configuration avoidance between CommonizeCInterop

and CInterop tasks

^KT-58712
This commit is contained in:
Timofey Solonin
2023-06-28 12:43:22 +02:00
committed by Space Team
parent a1db10c5fe
commit e59371d291
@@ -7,6 +7,7 @@
package org.jetbrains.kotlin.gradle.unitTests
import org.gradle.api.GradleException
import org.jetbrains.kotlin.commonizer.CommonizerTarget
import org.jetbrains.kotlin.commonizer.SharedCommonizerTarget
import org.jetbrains.kotlin.gradle.util.MultiplatformExtensionTest
@@ -15,6 +16,8 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerTask
import org.jetbrains.kotlin.gradle.targets.native.internal.CInteropCommonizerGroup
import org.jetbrains.kotlin.gradle.targets.native.internal.commonizeCInteropTask
import org.jetbrains.kotlin.gradle.util.enableCInteropCommonization
import org.jetbrains.kotlin.gradle.util.main
import org.jetbrains.kotlin.gradle.util.runLifecycleAwareTest
import org.jetbrains.kotlin.konan.target.KonanTarget.*
import kotlin.test.*
@@ -30,6 +33,23 @@ class CInteropCommonizerTaskTest : MultiplatformExtensionTest() {
super.setup()
}
@Test
fun `commonizeCInteropTask configuration - avoids cinterop task configuration`() {
project.enableCInteropCommonization(true)
listOf(
kotlin.linuxX64().compilations.main.cinterops.create("anyInteropName"),
kotlin.macosX64().compilations.main.cinterops.create("anyInteropName"),
).forEach {
project.tasks.named(it.interopProcessingTaskName).configure {
fail("Interop task configuration should not avoided by commonizeCInteropTask configuration")
}
}
project.commonizeCInteropTask?.get() ?: fail("Expected commonizeCInteropTask to be present")
project.evaluate()
}
@Test
fun `nativeMain linux macos`() = project.runLifecycleAwareTest {
val linuxInterop = kotlin.linuxX64("linux").compilations.getByName("main").cinterops.create("anyInteropName")