[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)) 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("linuxA") { attributes { attribute(distinguishingAttribute, "linuxA") } }
linuxX64("linuxB") { attributes { attribute(distinguishingAttribute, "linuxB") } } linuxX64("linuxB") { attributes { attribute(distinguishingAttribute, "linuxB") } }
@@ -6,7 +6,9 @@
package org.jetbrains.kotlin.gradle.unitTests package org.jetbrains.kotlin.gradle.unitTests
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension 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.buildProjectWithMPP
import org.jetbrains.kotlin.gradle.util.kotlin import org.jetbrains.kotlin.gradle.util.kotlin
import kotlin.test.* import kotlin.test.*
@@ -21,7 +23,6 @@ class FatFrameworksTest {
} }
} }
project.evaluate() project.evaluate()
project.configurations.names.also(::println)
project.assertConfigurationExists("fooDebugFrameworkIosX64") project.assertConfigurationExists("fooDebugFrameworkIosX64")
project.assertConfigurationExists("fooDebugFrameworkIosArm64") project.assertConfigurationExists("fooDebugFrameworkIosArm64")
project.assertConfigurationExists("fooDebugFrameworkIosFat") project.assertConfigurationExists("fooDebugFrameworkIosFat")
@@ -77,6 +78,28 @@ class FatFrameworksTest {
iosArm64 { binaries.framework("foo", listOf(DEBUG, RELEASE)) } 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( private fun testFatFrameworkGrouping(
vararg allExpectedFatFrameworks: String, vararg allExpectedFatFrameworks: String,
configureTargets: KotlinMultiplatformExtension.() -> Unit, configureTargets: KotlinMultiplatformExtension.() -> Unit,
@@ -96,7 +119,7 @@ class FatFrameworksTest {
if (configuration != null) fail("'$name' configuration was not expected") if (configuration != null) fail("'$name' configuration was not expected")
} }
private fun Project.assertConfigurationExists(name: String) { private fun Project.assertConfigurationExists(name: String): Configuration {
project.configurations.findByName(name) ?: fail("'$name' configuration was expected to be created") return project.configurations.findByName(name) ?: fail("'$name' configuration was expected to be created")
} }
} }