[Gradle][KPM] Add kotlinToolingMetadataOfMainModule for tests

This commit is contained in:
Anton Lakotka
2022-03-24 11:42:30 +01:00
parent 1aac53d544
commit f5c05c1a52
@@ -25,11 +25,13 @@ import org.gradle.kotlin.dsl.create
import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.*
import kotlin.test.* import kotlin.test.*
private fun Project.kotlinToolingMetadataOfModule(moduleName: String = KotlinGradleModule.MAIN_MODULE_NAME): KotlinToolingMetadata { private fun Project.kotlinToolingMetadataOfModule(moduleName: String): KotlinToolingMetadata {
val module = kpmModules.getByName(moduleName) val module = kpmModules.getByName(moduleName)
return module.buildKotlinToolingMetadataTask!!.get().kotlinToolingMetadata return module.buildKotlinToolingMetadataTask!!.get().kotlinToolingMetadata
} }
private val Project.kotlinToolingMetadataOfMainModule get() = kotlinToolingMetadataOfModule(KotlinGradleModule.MAIN_MODULE_NAME)
class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() { class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() {
@Test @Test
fun `multiple targets`() { fun `multiple targets`() {
@@ -45,7 +47,7 @@ class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() {
} }
// When // When
val metadata = project.kotlinToolingMetadataOfModule() val metadata = project.kotlinToolingMetadataOfMainModule
// Then // Then
assertEquals("Gradle", metadata.buildSystem) assertEquals("Gradle", metadata.buildSystem)
@@ -57,16 +59,21 @@ class BuildKotlinToolingMetadataTest : AbstractKpmExtensionTest() {
val jvmTarget = metadata.projectTargets.single { it.platformType == jvm.name } val jvmTarget = metadata.projectTargets.single { it.platformType == jvm.name }
assertEquals(KotlinJvmVariant::class.java.canonicalName, jvmTarget.target) assertEquals(KotlinJvmVariant::class.java.canonicalName, jvmTarget.target)
val nativeTargets = metadata.projectTargets.filter { it.platformType == native.name }.sortedBy { it.platformType } val nativeTargets = metadata.projectTargets.filter { it.platformType == native.name }.map { it.target }.toSet()
assertEquals(KotlinLinuxArm64Variant::class.java.canonicalName, nativeTargets[0].target) assertEquals(
assertEquals(KotlinLinuxX64Variant::class.java.canonicalName, nativeTargets[1].target) setOf(
KotlinLinuxArm64Variant::class.java.canonicalName,
KotlinLinuxX64Variant::class.java.canonicalName
),
nativeTargets
)
} }
} }
class KotlinToolingMetadataWithModelMappingTest { class KotlinToolingMetadataWithModelMappingTest {
private val project = ProjectBuilder.builder().build().also { addBuildEventsListenerRegistryMock(it) } as ProjectInternal private val project = ProjectBuilder.builder().build().also { addBuildEventsListenerRegistryMock(it) } as ProjectInternal
private val multiplatformExtension get() = project.extensions.getByType(KotlinMultiplatformExtension::class.java) private val multiplatformExtension get() = project.extensions.getByType(KotlinMultiplatformExtension::class.java)
private fun getKotlinToolingMetadata() = project.kotlinToolingMetadataOfModule() private fun getKotlinToolingMetadata() = project.kotlinToolingMetadataOfMainModule
@BeforeTest @BeforeTest
fun setup() { fun setup() {