From f864e19d954386a277efe0c89ba8be2e891736c6 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Fri, 19 Nov 2021 12:19:09 +0100 Subject: [PATCH] [Android] Add Gradle integration tests for AGP 7.1 ^KT-49798 --- .../AbstractKotlinAndroidGradleTests.kt | 28 +++++++++++++------ .../kotlin/gradle/util/AGPVersion.kt | 3 +- .../new-mpp-android/app/build.gradle | 4 +-- .../new-mpp-android/lib/build.gradle | 4 +-- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index e03933e8f43..cd2f19eb42b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -120,10 +120,10 @@ open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() { compilerPluginArgsRegex.findAll(output).associate { it.groupValues[1] to it.groupValues[2] } compilerPluginOptionsBySourceSet.entries.forEach { (sourceSetName, argsString) -> - val shouldHaveAndroidExtensionArgs = - sourceSetName.startsWith("androidApp") && ( - androidGradlePluginVersion < AGPVersion.v7_0_0 || !sourceSetName.contains("AndroidTestRelease") - ) + val shouldHaveAndroidExtensionArgs = sourceSetName.startsWith("androidApp") && + (androidGradlePluginVersion < AGPVersion.v7_0_0 || !sourceSetName.contains("AndroidTestRelease")) && + (androidGradlePluginVersion < AGPVersion.v7_1_0 || !sourceSetName.contains("androidAppTestFixtures")) + if (shouldHaveAndroidExtensionArgs) assertTrue("$sourceSetName is an Android source set and should have Android Extensions in the args") { "plugin:org.jetbrains.kotlin.android" in argsString @@ -482,12 +482,14 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() { val options = defaultBuildOptions().copy(incremental = true, kotlinDaemonDebugPort = null) project.setupWorkingDir().also { - project.gradleBuildScript("libAndroid").appendText(""" + project.gradleBuildScript("libAndroid").appendText( + """ android.kotlinOptions { moduleName = "custom_path" } - """.trimIndent()) + """.trimIndent() + ) } project.build("assembleDebug", options = options) { @@ -505,6 +507,14 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() { } } +open class KotlinAndroid71GradleIT : KotlinAndroid70GradleIT() { + override val androidGradlePluginVersion: AGPVersion + get() = AGPVersion.v7_1_0 + + override val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.AtLeast("7.2") +} + open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v3_4_1 @@ -1057,14 +1067,16 @@ fun getSomething() = 10 """.trimIndent() + it } - gradleBuildScript("Lib").appendText("\n" + """ + gradleBuildScript("Lib").appendText( + "\n" + """ android { lintOptions.checkDependencies = true } dependencies { implementation(project(":java-lib")) } - """.trimIndent()) + """.trimIndent() + ) gradleSettingsScript().appendText( "\n" + """ diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt index 13841ac6b79..1e32fbe1a74 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt @@ -23,5 +23,6 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) { val v4_1_0 = fromString("4.1.3") val v4_2_0 = fromString("4.2.0") val v7_0_0 = fromString("7.0.0-beta02") + val v7_1_0 = fromString("7.1.0-beta03") } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/app/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/app/build.gradle index 42e2c8e91a2..73cdb945552 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/app/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/app/build.gradle @@ -10,7 +10,7 @@ android { defaultConfig { applicationId "app.example.com.app_sample" minSdkVersion 21 - targetSdkVersion 29 + targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" @@ -75,4 +75,4 @@ task printCompilerPluginOptions { println sourceSet.name + '=cp=>' + cp } } -} \ No newline at end of file +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/lib/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/lib/build.gradle index 8c7ec0680a2..b317a4c2f1d 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/lib/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-android/lib/build.gradle @@ -10,7 +10,7 @@ android { defaultConfig { minSdkVersion 21 - targetSdkVersion 29 + targetSdkVersion 30 versionCode 1 versionName "1.0" @@ -88,4 +88,4 @@ publishing { url = uri("$buildDir/repo") } } -} \ No newline at end of file +}