[Gradle][MPP] Add test cases for KotlinTargetHierarchy*
^KT-53570 Verification Pending
This commit is contained in:
committed by
Space Team
parent
da8a18920d
commit
1a519a8159
+48
@@ -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) {
|
||||
|
||||
+17
-2
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user