[Gradle] Implement MppCompositeBuildIT for builds with rootProject.name set

KT-56536
This commit is contained in:
Sebastian Sellmair
2023-02-09 11:44:27 +01:00
committed by Space Team
parent aa8885ddfc
commit 419b0e3e23
11 changed files with 140 additions and 0 deletions
@@ -253,4 +253,67 @@ class MppCompositeBuildIT : KGPBaseTest() {
}
}
}
@GradleTest
fun `test - sample5-KT-56536-rootProject_name - assemble`(gradleVersion: GradleVersion) {
val producer = project("mpp-composite-build/sample5-KT-56536-rootProject.name/producerBuild", gradleVersion)
project("mpp-composite-build/sample5-KT-56536-rootProject.name/consumerBuild", gradleVersion) {
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
build("cleanNativeDistributionCommonization")
build("assemble") {
assertTasksExecuted(":consumerA:compileCommonMainKotlinMetadata")
assertTasksExecuted(":consumerA:compileNativeMainKotlinMetadata")
assertTasksExecuted(":consumerA:compileNativeMainKotlinMetadata")
assertTasksExecuted(":consumerA:compileKotlinLinuxX64")
assertTasksExecuted(":consumerA:compileKotlinJvm")
}
build("assemble") {
assertTasksUpToDate(":consumerA:compileCommonMainKotlinMetadata")
assertTasksUpToDate(":consumerA:compileNativeMainKotlinMetadata")
assertTasksUpToDate(":consumerA:compileNativeMainKotlinMetadata")
assertTasksUpToDate(":consumerA:compileKotlinLinuxX64")
assertTasksUpToDate(":consumerA:compileKotlinJvm")
}
}
}
@GradleTest
fun `test - sample5-KT-56536-rootProject_name - ide dependencies`(gradleVersion: GradleVersion) {
val producer = project("mpp-composite-build/sample5-KT-56536-rootProject.name/producerBuild", gradleVersion)
project("mpp-composite-build/sample5-KT-56536-rootProject.name/consumerBuild", gradleVersion) {
settingsGradleKts.toFile().replaceText("<producer_path>", producer.projectPath.toUri().path)
resolveIdeDependencies(":consumerA") { dependencies ->
dependencies["commonMain"].assertMatches(
regularSourceDependency("producerBuild::producerA/commonMain"),
kotlinStdlibDependencies
)
dependencies["nativeMain"].assertMatches(
dependsOnDependency(":consumerA/commonMain"),
regularSourceDependency("producerBuild::producerA/commonMain"),
regularSourceDependency("producerBuild::producerA/nativeMain"),
regularSourceDependency("producerBuild::producerA/linuxMain"),
kotlinNativeDistributionDependencies,
binaryCoordinates(Regex(".*stdlib-common:.*")) /* KT-56278 */
)
dependencies["linuxMain"].assertMatches(
dependencies["nativeMain"],
dependsOnDependency(":consumerA/nativeMain"),
)
dependencies["linuxX64Main"].assertMatches(
dependsOnDependency(":consumerA/commonMain"),
dependsOnDependency(":consumerA/nativeMain"),
dependsOnDependency(":consumerA/linuxMain"),
projectArtifactDependency(Regular, "producerBuild::producerA", FilePathRegex(".*/linuxX64/main/klib/producerA.klib")),
kotlinNativeDistributionDependencies,
)
}
}
}
}
@@ -0,0 +1,16 @@
@file:Suppress("OPT_IN_USAGE")
plugins {
kotlin("multiplatform")
}
kotlin {
targetHierarchy.default()
jvm()
linuxX64()
linuxArm64()
sourceSets.commonMain.get().dependencies {
implementation("org.jetbrains.sample:producerA:1.0.0-SNAPSHOT")
}
}
@@ -0,0 +1,14 @@
dependencyResolutionManagement {
repositories {
mavenLocal()
mavenCentral()
}
}
include(":consumerA")
includeBuild("<producer_path>") {
dependencySubstitution {
substitute(module("org.jetbrains.sample:producerA")).using(project(":producerA"))
}
}
@@ -0,0 +1,17 @@
@file:Suppress("OPT_IN_USAGE")
plugins {
kotlin("multiplatform")
`maven-publish`
}
group = "org.jetbrains.sample"
version = "1.0.0-SNAPSHOT"
kotlin {
targetHierarchy.default()
jvm()
linuxX64()
linuxArm64()
}
@@ -0,0 +1,10 @@
rootProject.name = "customProducerName"
dependencyResolutionManagement {
repositories {
mavenLocal()
mavenCentral()
}
}
include(":producerA")