[Gradle] Test kotlinNativeFrameworkNameAttribute on fat frameworks

^KT-58316 Verification Pending
This commit is contained in:
Anton Lakotka
2023-05-03 16:13:57 +02:00
committed by Space Team
parent 7c5d1b4030
commit a1eff2cd85
2 changed files with 35 additions and 3 deletions
@@ -574,6 +574,15 @@ class ConfigurationsTest : MultiplatformExtensionTest() {
binaries.framework("main", listOf(NativeBuildType.DEBUG))
}
iosX64 {
binaries.framework("foo", listOf(NativeBuildType.DEBUG)) { baseName = "foo" }
binaries.framework("bar", listOf(NativeBuildType.DEBUG)) { baseName = "bar" }
}
iosArm64 {
binaries.framework("foo", listOf(NativeBuildType.DEBUG)) { baseName = "foo" }
binaries.framework("bar", listOf(NativeBuildType.DEBUG)) { baseName = "bar" }
}
linuxX64("linuxA") { attributes { attribute(distinguishingAttribute, "linuxA") } }
linuxX64("linuxB") { attributes { attribute(distinguishingAttribute, "linuxB") } }
@@ -6,7 +6,9 @@
package org.jetbrains.kotlin.gradle.unitTests
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.util.buildProjectWithMPP
import org.jetbrains.kotlin.gradle.util.kotlin
import kotlin.test.*
@@ -21,7 +23,6 @@ class FatFrameworksTest {
}
}
project.evaluate()
project.configurations.names.also(::println)
project.assertConfigurationExists("fooDebugFrameworkIosX64")
project.assertConfigurationExists("fooDebugFrameworkIosArm64")
project.assertConfigurationExists("fooDebugFrameworkIosFat")
@@ -77,6 +78,28 @@ class FatFrameworksTest {
iosArm64 { binaries.framework("foo", listOf(DEBUG, RELEASE)) }
}
@Test
fun `fat framework contains framework name attribute`() {
val project = buildProjectWithMPP {
kotlin {
iosX64 {
binaries.framework("foo", listOf(DEBUG)) { baseName = "f1" }
binaries.framework("bar", listOf(DEBUG)) { baseName = "f2" }
}
iosArm64 {
binaries.framework("foo", listOf(DEBUG)) { baseName = "f1" }
binaries.framework("bar", listOf(DEBUG)) { baseName = "f2" }
}
}
}
project.evaluate()
val barFat = project.assertConfigurationExists("barDebugFrameworkIosFat")
val fooFat = project.assertConfigurationExists("fooDebugFrameworkIosFat")
assertEquals("f1", fooFat.attributes.getAttribute(KotlinNativeTarget.kotlinNativeFrameworkNameAttribute))
assertEquals("f2", barFat.attributes.getAttribute(KotlinNativeTarget.kotlinNativeFrameworkNameAttribute))
}
private fun testFatFrameworkGrouping(
vararg allExpectedFatFrameworks: String,
configureTargets: KotlinMultiplatformExtension.() -> Unit,
@@ -96,7 +119,7 @@ class FatFrameworksTest {
if (configuration != null) fail("'$name' configuration was not expected")
}
private fun Project.assertConfigurationExists(name: String) {
project.configurations.findByName(name) ?: fail("'$name' configuration was expected to be created")
private fun Project.assertConfigurationExists(name: String): Configuration {
return project.configurations.findByName(name) ?: fail("'$name' configuration was expected to be created")
}
}