From 32f01999b1f29ad96e38b2836287366c9b9bc8c3 Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Wed, 16 Feb 2022 14:03:55 +0100 Subject: [PATCH] [Gradle] Add test for KT-50925 --- .../kotlin/gradle/NewMultiplatformIT.kt | 26 +++++++++++++++++++ .../app/build.gradle.kts | 25 ++++++++++++++++++ .../app/settings.gradle.kts | 1 + .../app/src/commonMain/kotlin/Lib.kt | 3 +++ .../app/subproject/build.gradle.kts | 8 ++++++ .../subproject/src/commonMain/kotlin/Lib.kt | 3 +++ .../lib/build.gradle.kts | 23 ++++++++++++++++ .../lib/src/commonMain/kotlin/Lib.kt | 3 +++ 8 files changed, 92 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/settings.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/src/commonMain/kotlin/Lib.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/src/commonMain/kotlin/Lib.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/src/commonMain/kotlin/Lib.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt index 39201208de1..3b957961da0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/NewMultiplatformIT.kt @@ -1946,6 +1946,32 @@ class NewMultiplatformIT : BaseGradleIT() { } } + @Test + fun testResolveMetadataCompileClasspathKt50925() { + Project("lib", directoryPrefix = "kt-50925-resolve-metadata-compile-classpath").apply { + setupWorkingDir() + gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + + build("publish", options = defaultBuildOptions().copy(enableCompatibilityMetadataVariant = false)) { + assertSuccessful() + } + } + + Project("app", directoryPrefix = "kt-50925-resolve-metadata-compile-classpath").apply { + setupWorkingDir() + gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl) + + testResolveAllConfigurations { unresolvedConfigurations -> + assertTrue(unresolvedConfigurations.isEmpty(), "Unresolved configurations: $unresolvedConfigurations") + + assertContains(">> :metadataCompileClasspath --> lib-metadata-1.0.jar") + assertContains(">> :metadataCompileClasspath --> subproject-metadata.jar") + assertContains(">> :metadataCommonMainCompileClasspath --> lib-metadata-1.0.jar") + assertContains(">> :metadataCommonMainCompileClasspath --> subproject-metadata.jar") + } + } + } + private fun detectNativeEnabledCompilation(): String = when { HostManager.hostIsLinux -> "linuxX64" HostManager.hostIsMingw -> "mingwX64" diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/build.gradle.kts new file mode 100644 index 00000000000..70865cf1b01 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/build.gradle.kts @@ -0,0 +1,25 @@ +plugins { + kotlin("multiplatform").version("") +} + +allprojects { + repositories { + maven("$rootDir/../repo") + mavenLocal() + mavenCentral() + } +} + +kotlin { + linuxArm64() + linuxX64() + + sourceSets { + val commonMain by getting { + dependencies { + implementation("kt50925:lib:1.0") + implementation(project(":subproject")) + } + } + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/settings.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/settings.gradle.kts new file mode 100644 index 00000000000..39022621b5c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/settings.gradle.kts @@ -0,0 +1 @@ +include(":subproject") \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/src/commonMain/kotlin/Lib.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/src/commonMain/kotlin/Lib.kt new file mode 100644 index 00000000000..5951fb4824d --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/src/commonMain/kotlin/Lib.kt @@ -0,0 +1,3 @@ +package test + +fun app() = 1 + subproject() + publishedLib() \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/build.gradle.kts new file mode 100644 index 00000000000..b03c34ff60f --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/build.gradle.kts @@ -0,0 +1,8 @@ +plugins { + kotlin("multiplatform") +} + +kotlin { + linuxArm64() + linuxX64() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/src/commonMain/kotlin/Lib.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/src/commonMain/kotlin/Lib.kt new file mode 100644 index 00000000000..6f9d0f299ec --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/app/subproject/src/commonMain/kotlin/Lib.kt @@ -0,0 +1,3 @@ +package test + +fun subproject() = 42 \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/build.gradle.kts new file mode 100644 index 00000000000..1b548af9728 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + kotlin("multiplatform").version("") + `maven-publish` +} + +group = "kt50925" +version = "1.0" + +repositories { + mavenLocal() + mavenCentral() +} + +kotlin { + linuxX64() + linuxArm64() +} + +publishing { + repositories { + maven("$rootDir/../repo") + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/src/commonMain/kotlin/Lib.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/src/commonMain/kotlin/Lib.kt new file mode 100644 index 00000000000..f3a84b945e8 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kt-50925-resolve-metadata-compile-classpath/lib/src/commonMain/kotlin/Lib.kt @@ -0,0 +1,3 @@ +package test + +fun publishedLib() = 2 \ No newline at end of file