diff --git a/src/functionalTest/kotlin/kotlinx/validation/test/KlibVerificationTests.kt b/src/functionalTest/kotlin/kotlinx/validation/test/KlibVerificationTests.kt index 64d1df7..a24fd8c 100644 --- a/src/functionalTest/kotlin/kotlinx/validation/test/KlibVerificationTests.kt +++ b/src/functionalTest/kotlin/kotlinx/validation/test/KlibVerificationTests.kt @@ -852,7 +852,7 @@ internal class KlibVerificationTests : BaseKotlinGradleTest() { } @Test - fun `check cross compilation support`() { + fun `check cross compilation support for apiDump`() { Assume.assumeFalse(HostManager().isEnabled(KonanTarget.MACOS_ARM64)) val runner = test { @@ -868,7 +868,29 @@ internal class KlibVerificationTests : BaseKotlinGradleTest() { arguments.addAll(listOf(":apiDump", "-Pkotlin.native.enableKlibsCrossCompilation=true")) } } - checkKlibDump(runner.build(), "/examples/classes/TopLevelDeclarations.klib.all.dump") } + + @Test + fun `check cross compilation support for apiCheck`() { + Assume.assumeFalse(HostManager().isEnabled(KonanTarget.MACOS_ARM64)) + + val runner = test { + settingsGradleKts { + resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts") + } + buildGradleKts { + resolve("/examples/gradle/base/withNativePluginAndCrossCompilation.gradle.kts") + } + additionalBuildConfig("/examples/gradle/configuration/appleTargets/targets.gradle.kts") + addToSrcSet("/examples/classes/TopLevelDeclarations.kt") + abiFile(projectName = "testproject") { + resolve("/examples/classes/TopLevelDeclarations.klib.all.dump") + } + runner { + arguments.addAll(listOf(":apiCheck", "-Pkotlin.native.enableKlibsCrossCompilation=true")) + } + } + assertApiCheckPassed(runner.build()) + } } diff --git a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt index c117b3e..fc8a4c8 100644 --- a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt +++ b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt @@ -556,18 +556,10 @@ private class KlibValidationPipelineBuilder( // Compilable targets not supported by the host compiler private fun Project.unsupportedTargets(): Provider> { - val banned = bannedTargets() // for testing only return project.provider { - val hm = HostManager() project.kotlinMultiplatform.targets.matching { it.emitsKlib } .asSequence() - .filter { - if (it is KotlinNativeTarget) { - !hm.isEnabled(it.konanTarget) || it.targetName in banned - } else { - false - } - } + .filterNot { targetIsSupported(it) } .map { it.toKlibTarget() } .toSet() }