From 2b26b0c540351e1c96efb53ff8aa75e80adae73a Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Mon, 5 Jun 2023 12:37:31 +0200 Subject: [PATCH] [Gradle] Add integration test for Icerock Mobile Multiplatform plugin ^KT-59049 --- .../gradle/android/KotlinAndroidMppIT.kt | 27 +++++++++++++++++++ .../build.gradle.kts | 17 ++++++++++++ .../src/commonMain/kotlin/Common.kt | 5 ++++ 3 files changed, 49 insertions(+) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/build.gradle.kts create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/src/commonMain/kotlin/Common.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt index 428edee7d86..8bb9ee8ec60 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/android/KotlinAndroidMppIT.kt @@ -14,6 +14,7 @@ import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_1 import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_2 import org.jetbrains.kotlin.gradle.tooling.BuildKotlinToolingMetadataTask import org.jetbrains.kotlin.gradle.util.AGPVersion +import org.jetbrains.kotlin.gradle.util.replaceText import org.jetbrains.kotlin.gradle.util.testResolveAllConfigurations import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.io.TempDir @@ -1019,4 +1020,30 @@ class KotlinAndroidMppIT : KGPBaseTest() { } } } + + @GradleAndroidTest + fun smokeTestWithIcerockMobileMultiplatformGradlePlugin( + gradleVersion: GradleVersion, + agpVersion: String, + jdkVersion: JdkVersions.ProvidedJdk + ) { + project( + "kgp-with-icerock-mobile-multiplatform", gradleVersion, + defaultBuildOptions.copy(androidVersion = agpVersion), + buildJdk = jdkVersion.location + ) { + settingsGradleKts.replaceText( + "resolutionStrategy {", + """ + resolutionStrategy { + eachPlugin { + if (requested.id.id.startsWith("dev.icerock.mobile.multiplatform")) { + useModule("dev.icerock:mobile-multiplatform:0.14.2") + } + } + """.trimIndent() + ) + build("assemble") + } + } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/build.gradle.kts new file mode 100644 index 00000000000..147c07eeeb2 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/build.gradle.kts @@ -0,0 +1,17 @@ +plugins { + id("com.android.library") + kotlin("multiplatform") + + id("dev.icerock.mobile.multiplatform") +} + +android { + namespace = "com.example" + compileSdk = 24 +} + +repositories { + mavenLocal() + mavenCentral() + google() +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/src/commonMain/kotlin/Common.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/src/commonMain/kotlin/Common.kt new file mode 100644 index 00000000000..63733e3b6f5 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kgp-with-icerock-mobile-multiplatform/src/commonMain/kotlin/Common.kt @@ -0,0 +1,5 @@ +package kmm.lib + +class Common { + fun foo() = "bar" +} \ No newline at end of file