From a171f774be1ce0cd3dde5c6bb19c485fbef05f35 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Wed, 21 Feb 2024 13:29:14 +0100 Subject: [PATCH] Validate that resources from new source sets are published --- .../MultiplatformResourcesPublicationIT.kt | 46 +++++++++++++++++++ .../embed/publication/inCommon | 1 + .../embed/publication/inner/innerInCommon | 1 + .../embed/publication/inner/platformOverride | 1 + .../embed/publication/newSourceSetResource | 1 + .../embed/publication/onlyInLinuxX64 | 1 + 6 files changed, 51 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/innerInCommon create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/platformOverride create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/newSourceSetResource create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/onlyInLinuxX64 diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt index e9d26dcc11a..e99bb403c93 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/mpp/resources/MultiplatformResourcesPublicationIT.kt @@ -10,6 +10,7 @@ import org.junit.jupiter.api.DisplayName import java.nio.file.Path import java.util.zip.ZipFile import kotlin.io.path.name +import kotlin.io.path.writeText @MppGradlePluginTests @AndroidTestVersions(minVersion = TestVersions.AGP.AGP_73) @@ -128,6 +129,51 @@ class MultiplatformResourcesPublicationIT : KGPBaseTest() { ) } + @DisplayName("Multiplatform resources publication when a previously non-existent source set with resource is added") + @GradleAndroidTest + fun testNativeTargetResourcesPublicationWithNewSourceSet( + gradleVersion: GradleVersion, + androidVersion: String, + providedJdk: JdkVersions.ProvidedJdk, + ) { + project( + "multiplatformResources/publication", + gradleVersion, + buildJdk = providedJdk.location, + ) { + val publishedArchive = projectPath.resolve( + "build/repo/test/publication-linuxx64/1.0/publication-linuxx64-1.0-kotlin_resources.kotlin_resources.zip" + ) + + buildWithAGPVersion( + ":publishLinuxX64PublicationToMavenRepository", + androidVersion = androidVersion, + defaultBuildOptions = defaultBuildOptions, + ) + compareEmbeddedResources( + publishedArchive, + reference("linuxX64") + ) + + // Add a file to a source set that didn't exist previously + val linuxMainSourceSet = projectPath.resolve("src/linuxMain") + assertDirectoryDoesNotExist(linuxMainSourceSet) + val newResource = linuxMainSourceSet.resolve("multiplatformResources/newSourceSetResource") + assert(newResource.parent.toFile().mkdirs()) + newResource.writeText(newResource.name) + + buildWithAGPVersion( + ":publishLinuxX64PublicationToMavenRepository", + androidVersion = androidVersion, + defaultBuildOptions = defaultBuildOptions, + ) + compareEmbeddedResources( + publishedArchive, + reference("linuxX64WithNewSourceSet") + ) + } + } + private fun testEmbeddedResources( gradleVersion: GradleVersion, androidVersion: String, diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inCommon new file mode 100644 index 00000000000..7cbcb793c05 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inCommon @@ -0,0 +1 @@ +inCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/innerInCommon b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/innerInCommon new file mode 100644 index 00000000000..17f24c06452 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/innerInCommon @@ -0,0 +1 @@ +innerInCommon \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/platformOverride b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/platformOverride new file mode 100644 index 00000000000..0f94db7a779 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/inner/platformOverride @@ -0,0 +1 @@ +linuxX64Override \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/newSourceSetResource b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/newSourceSetResource new file mode 100644 index 00000000000..bf7e6f8371f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/newSourceSetResource @@ -0,0 +1 @@ +newSourceSetResource \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/onlyInLinuxX64 b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/onlyInLinuxX64 new file mode 100644 index 00000000000..881c2658365 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformResources/publication/reference/linuxX64WithNewSourceSet/embed/publication/onlyInLinuxX64 @@ -0,0 +1 @@ +onlyInLinuxX64 \ No newline at end of file