diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/ConfigurationsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/ConfigurationsTest.kt index 750e8ad773f..380b413d96e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/ConfigurationsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/regressionTests/ConfigurationsTest.kt @@ -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") } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FatFrameworksTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FatFrameworksTest.kt index 33cb4b3beb8..78748bcc2e5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FatFrameworksTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/FatFrameworksTest.kt @@ -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") } } \ No newline at end of file