[Gradle] IdeKotlinSourceDependencyMatcher: Migrate to 'BuildIdentifier.getBuildPath'

^KT-58157 In Progress
This commit is contained in:
Sebastian Sellmair
2023-07-27 16:55:06 +02:00
committed by Space Team
parent 9913ea2e20
commit 71e779375f
3 changed files with 25 additions and 21 deletions
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.gradle.idea.tcs.IdeaKotlinSourceDependency
internal class IdeaKotlinSourceDependencyMatcher( internal class IdeaKotlinSourceDependencyMatcher(
val type: IdeaKotlinSourceDependency.Type, val type: IdeaKotlinSourceDependency.Type,
val buildName: String, val buildPath: String,
val projectPath: String, val projectPath: String,
val sourceSetName: String val sourceSetName: String
) : IdeaKotlinDependencyMatcher { ) : IdeaKotlinDependencyMatcher {
@@ -20,7 +20,7 @@ internal class IdeaKotlinSourceDependencyMatcher(
override fun matches(dependency: IdeaKotlinDependency): Boolean { override fun matches(dependency: IdeaKotlinDependency): Boolean {
if (dependency !is IdeaKotlinSourceDependency) return false if (dependency !is IdeaKotlinSourceDependency) return false
return dependency.type == type && return dependency.type == type &&
dependency.coordinates.buildName == buildName && dependency.coordinates.buildPath == buildPath &&
dependency.coordinates.projectPath == projectPath && dependency.coordinates.projectPath == projectPath &&
dependency.coordinates.sourceSetName == sourceSetName dependency.coordinates.sourceSetName == sourceSetName
} }
@@ -25,8 +25,7 @@ fun buildIdeaKotlinDependencyMatchers(notation: Any?): List<IdeaKotlinDependency
} }
fun ideSourceDependency(type: IdeaKotlinSourceDependency.Type, project: Project, sourceSetName: String): IdeaKotlinDependencyMatcher { fun ideSourceDependency(type: IdeaKotlinSourceDependency.Type, project: Project, sourceSetName: String): IdeaKotlinDependencyMatcher {
@Suppress("DEPRECATION") // Should be fixed via https://youtrack.jetbrains.com/issue/KT-58157 return IdeaKotlinSourceDependencyMatcher(type, project.currentBuildId().buildPath, project.path, sourceSetName)
return IdeaKotlinSourceDependencyMatcher(type, project.currentBuildId().name, project.path, sourceSetName)
} }
fun ideSourceDependency(type: IdeaKotlinSourceDependency.Type, path: String): IdeaKotlinDependencyMatcher { fun ideSourceDependency(type: IdeaKotlinSourceDependency.Type, path: String): IdeaKotlinDependencyMatcher {
@@ -17,6 +17,11 @@ import org.junit.jupiter.api.condition.OS
@MppGradlePluginTests @MppGradlePluginTests
@DisplayName("Tests for multiplatform with composite builds") @DisplayName("Tests for multiplatform with composite builds")
/*
Testing with maxVersion 8.2, because of significant branching introduced in KT-58157
We can remove this, once MAX_SUPPORTED is higher or equal to 8.2
*/
@GradleTestVersions(maxVersion = TestVersions.Gradle.G_8_2)
class MppCompositeBuildIT : KGPBaseTest() { class MppCompositeBuildIT : KGPBaseTest() {
@GradleTest @GradleTest
fun `test - sample0 - ide dependencies`(gradleVersion: GradleVersion) { fun `test - sample0 - ide dependencies`(gradleVersion: GradleVersion) {
@@ -26,15 +31,15 @@ class MppCompositeBuildIT : KGPBaseTest() {
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path) settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
resolveIdeDependencies(":consumerA") { dependencies -> resolveIdeDependencies(":consumerA") { dependencies ->
dependencies["commonMain"].assertMatches( dependencies["commonMain"].assertMatches(
regularSourceDependency("producerBuild::producerA/commonMain"), regularSourceDependency(":producerBuild::producerA/commonMain"),
kotlinStdlibDependencies kotlinStdlibDependencies
) )
dependencies["nativeMain"].assertMatches( dependencies["nativeMain"].assertMatches(
dependsOnDependency(":consumerA/commonMain"), dependsOnDependency(":consumerA/commonMain"),
regularSourceDependency("producerBuild::producerA/commonMain"), regularSourceDependency(":producerBuild::producerA/commonMain"),
regularSourceDependency("producerBuild::producerA/nativeMain"), regularSourceDependency(":producerBuild::producerA/nativeMain"),
regularSourceDependency("producerBuild::producerA/linuxMain"), regularSourceDependency(":producerBuild::producerA/linuxMain"),
kotlinNativeDistributionDependencies, kotlinNativeDistributionDependencies,
binaryCoordinates(Regex(".*stdlib-common:.*")) /* KT-56278 */ binaryCoordinates(Regex(".*stdlib-common:.*")) /* KT-56278 */
) )
@@ -48,7 +53,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
dependsOnDependency(":consumerA/commonMain"), dependsOnDependency(":consumerA/commonMain"),
dependsOnDependency(":consumerA/nativeMain"), dependsOnDependency(":consumerA/nativeMain"),
dependsOnDependency(":consumerA/linuxMain"), dependsOnDependency(":consumerA/linuxMain"),
projectArtifactDependency(Regular, "producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")), projectArtifactDependency(Regular, ":producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")),
kotlinNativeDistributionDependencies, kotlinNativeDistributionDependencies,
) )
} }
@@ -119,7 +124,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
resolveIdeDependencies { dependencies -> resolveIdeDependencies { dependencies ->
dependencies["commonMain"].assertMatches( dependencies["commonMain"].assertMatches(
kotlinStdlibDependencies, kotlinStdlibDependencies,
regularSourceDependency("included-build::included/commonMain") regularSourceDependency(":included-build::included/commonMain")
) )
dependencies["jvmMain"].assertMatches( dependencies["jvmMain"].assertMatches(
@@ -128,7 +133,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
dependsOnDependency(":/commonMain"), dependsOnDependency(":/commonMain"),
projectArtifactDependency( projectArtifactDependency(
Regular, "included-build::included", Regular, ":included-build::included",
FilePathRegex(".*/included-build/included/build/libs/included-jvm.jar") FilePathRegex(".*/included-build/included/build/libs/included-jvm.jar")
) )
) )
@@ -221,7 +226,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
kotlinStdlibDependencies, kotlinStdlibDependencies,
jetbrainsAnnotationDependencies, jetbrainsAnnotationDependencies,
projectArtifactDependency( projectArtifactDependency(
Regular, "producerBuild::producerA", FilePathRegex(".*producerA/build/libs/producerA-1.0.0-SNAPSHOT.jar") Regular, ":producerBuild::producerA", FilePathRegex(".*producerA/build/libs/producerA-1.0.0-SNAPSHOT.jar")
) )
) )
@@ -230,7 +235,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
jetbrainsAnnotationDependencies, jetbrainsAnnotationDependencies,
dependsOnDependency(":consumerA/commonMain"), dependsOnDependency(":consumerA/commonMain"),
projectArtifactDependency( projectArtifactDependency(
Regular, "producerBuild::producerA", FilePathRegex(".*producerA/build/libs/producerA-1.0.0-SNAPSHOT.jar") Regular, ":producerBuild::producerA", FilePathRegex(".*producerA/build/libs/producerA-1.0.0-SNAPSHOT.jar")
) )
) )
} }
@@ -288,15 +293,15 @@ class MppCompositeBuildIT : KGPBaseTest() {
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path) settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
resolveIdeDependencies(":consumerA") { dependencies -> resolveIdeDependencies(":consumerA") { dependencies ->
dependencies["commonMain"].assertMatches( dependencies["commonMain"].assertMatches(
regularSourceDependency("producerBuild::producerA/commonMain"), regularSourceDependency(":producerBuild::producerA/commonMain"),
kotlinStdlibDependencies kotlinStdlibDependencies
) )
dependencies["nativeMain"].assertMatches( dependencies["nativeMain"].assertMatches(
dependsOnDependency(":consumerA/commonMain"), dependsOnDependency(":consumerA/commonMain"),
regularSourceDependency("producerBuild::producerA/commonMain"), regularSourceDependency(":producerBuild::producerA/commonMain"),
regularSourceDependency("producerBuild::producerA/nativeMain"), regularSourceDependency(":producerBuild::producerA/nativeMain"),
regularSourceDependency("producerBuild::producerA/linuxMain"), regularSourceDependency(":producerBuild::producerA/linuxMain"),
kotlinNativeDistributionDependencies, kotlinNativeDistributionDependencies,
binaryCoordinates(Regex(".*stdlib-common:.*")) /* KT-56278 */ binaryCoordinates(Regex(".*stdlib-common:.*")) /* KT-56278 */
) )
@@ -310,7 +315,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
dependsOnDependency(":consumerA/commonMain"), dependsOnDependency(":consumerA/commonMain"),
dependsOnDependency(":consumerA/nativeMain"), dependsOnDependency(":consumerA/nativeMain"),
dependsOnDependency(":consumerA/linuxMain"), dependsOnDependency(":consumerA/linuxMain"),
projectArtifactDependency(Regular, "producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")), projectArtifactDependency(Regular, ":producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")),
kotlinNativeDistributionDependencies, kotlinNativeDistributionDependencies,
) )
} }
@@ -345,14 +350,14 @@ class MppCompositeBuildIT : KGPBaseTest() {
build(":consumerA:resolveIdeDependencies") { build(":consumerA:resolveIdeDependencies") {
consumerA.readIdeDependencies()["commonMain"].assertMatches( consumerA.readIdeDependencies()["commonMain"].assertMatches(
regularSourceDependency("producer::/commonMain"), regularSourceDependency(":producer::/commonMain"),
kotlinStdlibDependencies kotlinStdlibDependencies
) )
} }
build(":consumerB:resolveIdeDependencies") { build(":consumerB:resolveIdeDependencies") {
consumerB.readIdeDependencies()["commonMain"].assertMatches( consumerB.readIdeDependencies()["commonMain"].assertMatches(
regularSourceDependency("producer::/commonMain"), regularSourceDependency(":producer::/commonMain"),
kotlinStdlibDependencies kotlinStdlibDependencies
) )
} }
@@ -366,7 +371,7 @@ class MppCompositeBuildIT : KGPBaseTest() {
} }
@GradleTest @GradleTest
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0) @GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0, maxVersion = TestVersions.Gradle.G_8_2)
fun `test sample7`(gradleVersion: GradleVersion) { fun `test sample7`(gradleVersion: GradleVersion) {
val producer = project("mpp-composite-build/sample7-KT-59863-pluginManagement.includeBuild/producerBuild", 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) {