Skip to content

Commit 5d40231

Browse files
authored
Correctly filter targets for the ABI check (#306)
Fixes #304
1 parent 5252921 commit 5d40231

File tree

2 files changed

+25
-11
lines changed

2 files changed

+25
-11
lines changed

src/functionalTest/kotlin/kotlinx/validation/test/KlibVerificationTests.kt

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -852,7 +852,7 @@ internal class KlibVerificationTests : BaseKotlinGradleTest() {
852852
}
853853

854854
@Test
855-
fun `check cross compilation support`() {
855+
fun `check cross compilation support for apiDump`() {
856856
Assume.assumeFalse(HostManager().isEnabled(KonanTarget.MACOS_ARM64))
857857

858858
val runner = test {
@@ -868,7 +868,29 @@ internal class KlibVerificationTests : BaseKotlinGradleTest() {
868868
arguments.addAll(listOf(":apiDump", "-Pkotlin.native.enableKlibsCrossCompilation=true"))
869869
}
870870
}
871-
872871
checkKlibDump(runner.build(), "/examples/classes/TopLevelDeclarations.klib.all.dump")
873872
}
873+
874+
@Test
875+
fun `check cross compilation support for apiCheck`() {
876+
Assume.assumeFalse(HostManager().isEnabled(KonanTarget.MACOS_ARM64))
877+
878+
val runner = test {
879+
settingsGradleKts {
880+
resolve("/examples/gradle/settings/settings-name-testproject.gradle.kts")
881+
}
882+
buildGradleKts {
883+
resolve("/examples/gradle/base/withNativePluginAndCrossCompilation.gradle.kts")
884+
}
885+
additionalBuildConfig("/examples/gradle/configuration/appleTargets/targets.gradle.kts")
886+
addToSrcSet("/examples/classes/TopLevelDeclarations.kt")
887+
abiFile(projectName = "testproject") {
888+
resolve("/examples/classes/TopLevelDeclarations.klib.all.dump")
889+
}
890+
runner {
891+
arguments.addAll(listOf(":apiCheck", "-Pkotlin.native.enableKlibsCrossCompilation=true"))
892+
}
893+
}
894+
assertApiCheckPassed(runner.build())
895+
}
874896
}

src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -556,18 +556,10 @@ private class KlibValidationPipelineBuilder(
556556

557557
// Compilable targets not supported by the host compiler
558558
private fun Project.unsupportedTargets(): Provider<Set<KlibTarget>> {
559-
val banned = bannedTargets() // for testing only
560559
return project.provider {
561-
val hm = HostManager()
562560
project.kotlinMultiplatform.targets.matching { it.emitsKlib }
563561
.asSequence()
564-
.filter {
565-
if (it is KotlinNativeTarget) {
566-
!hm.isEnabled(it.konanTarget) || it.targetName in banned
567-
} else {
568-
false
569-
}
570-
}
562+
.filterNot { targetIsSupported(it) }
571563
.map { it.toKlibTarget() }
572564
.toSet()
573565
}

0 commit comments

Comments
 (0)