From 2f87c2863439f34b19f94d1654cda60639b5bbf6 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Wed, 6 Oct 2021 16:00:03 +0200 Subject: [PATCH] Better test setup for Android projects. ^KT-45745 In Progress --- .../kotlin/gradle/KotlinJavaToolchainTest.kt | 7 ++++++- .../kotlin/gradle/testbase/KGPBaseTest.kt | 8 +++++-- .../kotlin/gradle/testbase/TestVersions.kt | 4 ++++ .../gradle/testbase/projectSetupDefaults.kt | 18 ++++++++++++++++ .../android/settings.gradle | 21 ------------------- 5 files changed, 34 insertions(+), 24 deletions(-) delete mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/android/settings.gradle diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt index 6c3e87ddac0..d05c196a72c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinJavaToolchainTest.kt @@ -534,7 +534,12 @@ class KotlinJavaToolchainTest : KGPBaseTest() { """.trimIndent() ) - build("assembleDebug", "-Pagp_version=${TestVersions.AGP.AGP_42}") + build( + "assembleDebug", + buildOptions = defaultBuildOptions.copy( + androidVersion = TestVersions.AGP.AGP_42 + ) + ) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt index 6fae491623f..8077d1feede 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt @@ -18,7 +18,6 @@ import org.junit.jupiter.api.io.TempDir import org.junit.jupiter.params.provider.Arguments import org.junit.jupiter.params.provider.ArgumentsProvider import java.nio.file.Path -import java.util.* import java.util.stream.Stream import kotlin.streams.asStream @@ -46,7 +45,8 @@ abstract class KGPBaseTest { val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2), val fileSystemWatchEnabled: Boolean = false, val buildCacheEnabled: Boolean = false, - val kaptOptions: KaptOptions? = null + val kaptOptions: KaptOptions? = null, + val androidVersion: String? = null ) { data class KaptOptions( val verbose: Boolean = false, @@ -113,6 +113,10 @@ abstract class KGPBaseTest { } } + if (androidVersion != null) { + arguments.add("-Pandroid_tools_version=${androidVersion}") + } + return arguments.toList() } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt index 842b639ec9c..a157f51ecab 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/TestVersions.kt @@ -22,6 +22,10 @@ interface TestVersions { } object AGP { + const val AGP_34 = "3.4.3" + const val AGP_36 = "3.6.4" + const val AGP_41 = "4.1.3" const val AGP_42 = "4.2.2" + const val AGP_70 = "7.0.2" } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt index e4ada6973f4..94eecd547c0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt @@ -14,12 +14,30 @@ internal val DEFAULT_GROOVY_SETTINGS_FILE = repositories { mavenLocal() mavenCentral() + google() gradlePluginPortal() } plugins { id "org.jetbrains.kotlin.jvm" version "${'$'}kotlin_version" id "org.jetbrains.kotlin.kapt" version "${'$'}kotlin_version" + id "org.jetbrains.kotlin.android" version "${'$'}kotlin_version" + } + + resolutionStrategy { + eachPlugin { + if (requested.id.id == "com.android.application" || + requested.id.id == "com.android.library" || + requested.id.id == "com.android.test" || + requested.id.id == "com.android.dynamic-feature" || + requested.id.id == "com.android.asset-pack" || + requested.id.id == "com.android.asset-pack-bundle" || + requested.id.id == "com.android.lint" || + requested.id.id == "com.android.instantapp" || + requested.id.id == "com.android.feature") { + useModule("com.android.tools.build:gradle:${'$'}android_tools_version") + } + } } } """.trimIndent() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/android/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/android/settings.gradle deleted file mode 100644 index bbe0b104ba1..00000000000 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin-java-toolchain/android/settings.gradle +++ /dev/null @@ -1,21 +0,0 @@ -pluginManagement { - repositories { - mavenLocal() - mavenCentral() - google() - } - - plugins { - id "org.jetbrains.kotlin.jvm" version "$kotlin_version" - id "org.jetbrains.kotlin.android" version "$kotlin_version" - id "org.jetbrains.kotlin.kapt" version "$kotlin_version" - } - - resolutionStrategy { - eachPlugin { - if (requested.id.id == "com.android.application") { - useModule("com.android.tools.build:gradle:$agp_version") - } - } - } -}