[Gradle][MPP] Add test cases for KotlinTargetHierarchy*

^KT-53570 Verification Pending
This commit is contained in:
sebastian.sellmair
2022-10-10 20:31:56 +02:00
committed by Space Team
parent da8a18920d
commit 1a519a8159
2 changed files with 65 additions and 2 deletions
@@ -189,6 +189,54 @@ class KotlinTargetHierarchyDescriptorTest {
cycleStack
)
}
@Test
fun `test - filterCompilations`() {
val descriptor = KotlinTargetHierarchyDescriptor {
filterCompilations { it.name in setOf("a", "b") }
common {
group("x") {
includeCompilationIf { true }
}
}
}
assertEquals(
hierarchy {
group("common") {
group("x")
}
},
descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("a"))
)
assertEquals(
descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("a")),
descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b"))
)
assertNull(
descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("c"))
)
}
@Test
fun `test - filterCompilations - include them again`() {
val descriptor = KotlinTargetHierarchyDescriptor {
includeCompilationIf { true }
filterCompilations { it.name == "a" }
}
assertNotNull(descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("a")))
assertNull(descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b")))
val extended = descriptor.extend {
includeCompilationIf { true } // <- adds all compilations back again!
}
assertNull(descriptor.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b")))
assertNotNull(extended.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("b")))
}
}
private class TestHierarchyBuilder(private val node: Node) {
@@ -11,8 +11,9 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetHierarchyDescriptor
import kotlin.test.Test
import kotlin.test.assertEquals
import org.jetbrains.kotlin.gradle.plugin.mpp.targetHierarchy.buildKotlinTargetHierarchy
import org.jetbrains.kotlin.gradle.plugin.mpp.targetHierarchy.naturalKotlinTargetHierarchy
import kotlin.test.*
class KotlinTargetHierarchyDslTest {
@@ -177,6 +178,20 @@ class KotlinTargetHierarchyDslTest {
)
}
@Test
fun `test - hierarchy default - is only applied to main and test compilations`() {
assertNotNull(naturalKotlinTargetHierarchy.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.main))
assertNotNull(naturalKotlinTargetHierarchy.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.test))
assertNull(naturalKotlinTargetHierarchy.buildKotlinTargetHierarchy(kotlin.linuxX64().compilations.maybeCreate("custom")))
kotlin.targetHierarchy.default()
kotlin.linuxX64().compilations.maybeCreate("custom").defaultSourceSet.let { customSourceSet ->
if (customSourceSet.dependsOn.isNotEmpty()) {
fail("Expected no dependsOn SourceSets for $customSourceSet (${customSourceSet.dependsOn})")
}
}
}
@Test
fun `test - hierarchy apply - extend`() {
val descriptor = KotlinTargetHierarchyDescriptor {