[Gradle] Implement MppCompositeBuildIT to check shape of project coordinates across different versions of Gradle
^KT-58157 Verification Pending
This commit is contained in:
committed by
Space Team
parent
749f13ca09
commit
d7d6d7ebca
+38
-2
@@ -8,12 +8,15 @@ package org.jetbrains.kotlin.gradle.mpp
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.KOTLIN_VERSION
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
|
||||
import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency.Type.Regular
|
||||
import org.jetbrains.kotlin.gradle.idea.testFixtures.tcs.*
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.jetbrains.kotlin.gradle.util.*
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.condition.OS
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertIs
|
||||
|
||||
@MppGradlePluginTests
|
||||
@DisplayName("Tests for multiplatform with composite builds")
|
||||
@@ -114,6 +117,31 @@ class MppCompositeBuildIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that verifies that after moving to 'buildPath' and 'buildName' in project coordinates (1.9.20),
|
||||
* the shape of the resolved coordinate are the same across different versions of Gradle.
|
||||
*/
|
||||
@GradleTest
|
||||
fun `test - sample0 - buildId buildPath buildName`(gradleVersion: GradleVersion) {
|
||||
val producer = project("mpp-composite-build/sample0/producerBuild", gradleVersion)
|
||||
|
||||
project("mpp-composite-build/sample0/consumerBuild", gradleVersion) {
|
||||
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
|
||||
resolveIdeDependencies(":consumerA") { dependencies ->
|
||||
/* Pick some known dependency and run check on it */
|
||||
val dependency = dependencies["commonMain"].getOrFail(regularSourceDependency(":producerBuild::producerA/commonMain"))
|
||||
assertIs<IdeaKotlinSourceDependency>(dependency)
|
||||
val projectCoordinates = dependency.coordinates.project
|
||||
@Suppress("DEPRECATION")
|
||||
assertEquals("producerBuild", projectCoordinates.buildId)
|
||||
assertEquals("producerBuild", projectCoordinates.buildName)
|
||||
assertEquals(":producerBuild", projectCoordinates.buildPath)
|
||||
assertEquals(":producerA", projectCoordinates.projectPath)
|
||||
assertEquals("producerA", projectCoordinates.projectName)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@GradleTest
|
||||
fun `test - sample1 - ide dependencies`(gradleVersion: GradleVersion) {
|
||||
project("mpp-composite-build/sample1", gradleVersion) {
|
||||
@@ -315,7 +343,11 @@ class MppCompositeBuildIT : KGPBaseTest() {
|
||||
dependsOnDependency(":consumerA/commonMain"),
|
||||
dependsOnDependency(":consumerA/nativeMain"),
|
||||
dependsOnDependency(":consumerA/linuxMain"),
|
||||
projectArtifactDependency(Regular, ":producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")),
|
||||
projectArtifactDependency(
|
||||
Regular,
|
||||
":producerBuild::producerA",
|
||||
FilePathRegex(".*/linuxX64/main/klib/producerA.klib")
|
||||
),
|
||||
kotlinNativeDistributionDependencies,
|
||||
)
|
||||
}
|
||||
@@ -374,7 +406,11 @@ class MppCompositeBuildIT : KGPBaseTest() {
|
||||
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0, maxVersion = TestVersions.Gradle.G_8_2)
|
||||
fun `test sample7`(gradleVersion: GradleVersion) {
|
||||
val producer = project("mpp-composite-build/sample7-KT-59863-pluginManagement.includeBuild/producerBuild", gradleVersion)
|
||||
project("mpp-composite-build/sample7-KT-59863-pluginManagement.includeBuild/consumerBuild", gradleVersion, defaultBuildOptions) {
|
||||
project(
|
||||
"mpp-composite-build/sample7-KT-59863-pluginManagement.includeBuild/consumerBuild",
|
||||
gradleVersion,
|
||||
defaultBuildOptions
|
||||
) {
|
||||
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
|
||||
build("projects")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user