From 32de4a6b2cb632ae3908f1e748e8fb19af313450 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 28 Nov 2023 00:19:36 +0100 Subject: [PATCH] [Gradle] test that native compilation has platform dependencies ^KT-61559 Verification Pending --- .../KotlinNativeCompileArgumentsTest.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt index 1dcf59f7317..28385511ec3 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/compilerArgumetns/KotlinNativeCompileArgumentsTest.kt @@ -9,6 +9,7 @@ package org.jetbrains.kotlin.gradle.unitTests.compilerArgumetns import org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments import org.jetbrains.kotlin.compilerRunner.ArgumentUtils +import org.jetbrains.kotlin.gradle.dependencyResolutionTests.mavenCentralCacheRedirector import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerArgumentsProducer.CreateCompilerArgumentsContext.Companion.default @@ -197,4 +198,27 @@ class KotlinNativeCompileArgumentsTest { "Expected linuxX64 source file to be present in 'freeArgs'" ) } + + @Test + fun `native compilation dependency files should contain native platform dependencies`() { + val project = buildProjectWithMPP() + project.repositories.mavenLocal() + project.repositories.mavenCentralCacheRedirector() + val kotlin = project.multiplatformExtension + + kotlin.linuxX64() + + project.evaluate() + val nativeCompilation = kotlin.linuxX64().compilations.main + + val expectedDependencies = listOf("iconv", "posix", "zlib", "linux", "builtin").map { + "org.jetbrains.kotlin.native.platform.$it" + }.toSet() + + val actualDependencies = nativeCompilation.compileDependencyFiles + .map { it.name } + .toSet() + + assertEquals(expectedDependencies, actualDependencies) + } } \ No newline at end of file