From bab8c97c097f190fd6d44bc9b178622bb880f471 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Mon, 2 Jul 2018 19:47:42 +0300 Subject: [PATCH] Allow overriding default Gradle version per test class --- .../AbstractKotlinAndroidGradleTests.kt | 56 +++++++++---------- .../jetbrains/kotlin/gradle/BaseGradleIT.kt | 5 +- .../jetbrains/kotlin/gradle/Kapt3AndroidIT.kt | 16 +++--- 3 files changed, 40 insertions(+), 37 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 90681b9713f..41a033202a3 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 @@ -10,14 +10,18 @@ import org.junit.Test import java.io.File -class KotlinAndroidGradleIT : - AbstractKotlinAndroidGradleTests(gradleVersion = GradleVersionRequired.AtLeast("3.4"), androidGradlePluginVersion = "2.3.0") +class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion = "2.3.0") { + override val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.AtLeast("3.4") +} // TODO If we there is a way to fetch the latest Android plugin version, test against the latest version -class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(GradleVersionRequired.AtLeast("4.6"), "3.2.0-beta01") { +class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = "3.2.0-beta01") { + override val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.AtLeast("4.6") @Test - fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject", gradleVersion)) { + fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) { setupWorkingDir() gradleBuildScript(subproject = "Android").appendText( @@ -80,16 +84,15 @@ class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(GradleVersionRequired.AtL } } -class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(GradleVersionRequired.AtLeast("4.1"), "3.0.0") - -abstract class KotlinAndroid3GradleIT( - gradleVersionRequired: GradleVersionRequired, - androidGradlePluginVersion: String -) : AbstractKotlinAndroidGradleTests(gradleVersionRequired, androidGradlePluginVersion) { +class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = "3.0.0") { + override val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.AtLeast("4.1") +} +abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: String) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) { @Test fun testApplyWithFeaturePlugin() { - val project = Project("AndroidProject", gradleVersion) + val project = Project("AndroidProject") project.setupWorkingDir() File(project.projectDir, "Lib/build.gradle").modify { text -> @@ -115,10 +118,7 @@ abstract class KotlinAndroid3GradleIT( } } -abstract class AbstractKotlinAndroidGradleTests( - protected val gradleVersion: GradleVersionRequired, - private val androidGradlePluginVersion: String -) : BaseGradleIT() { +abstract class AbstractKotlinAndroidGradleTests(private val androidGradlePluginVersion: String) : BaseGradleIT() { override fun defaultBuildOptions() = super.defaultBuildOptions().copy( @@ -128,7 +128,7 @@ abstract class AbstractKotlinAndroidGradleTests( @Test fun testSimpleCompile() { - val project = Project("AndroidProject", gradleVersion) + val project = Project("AndroidProject") val modules = listOf("Android", "Lib") val flavors = listOf("Flavor1", "Flavor2") @@ -171,7 +171,7 @@ abstract class AbstractKotlinAndroidGradleTests( @Test fun testAssembleAndroidTestFirst() { - val project = Project("AndroidProject", gradleVersion, minLogLevel = LogLevel.INFO) + val project = Project("AndroidProject", minLogLevel = LogLevel.INFO) // Execute 'assembleAndroidTest' first, without 'build' side effects project.build("assembleAndroidTest") { @@ -192,7 +192,7 @@ abstract class AbstractKotlinAndroidGradleTests( @Test fun testIncrementalCompile() { - val project = Project("AndroidIncrementalSingleModuleProject", gradleVersion) + val project = Project("AndroidIncrementalSingleModuleProject") val options = defaultBuildOptions().copy(incremental = true) project.build("assembleDebug", options = options) { @@ -221,7 +221,7 @@ fun getSomething() = 10 @Test fun testMultiModuleIC() { - val project = Project("AndroidProject", gradleVersion) + val project = Project("AndroidProject") val options = defaultBuildOptions().copy(incremental = true) project.build("assembleDebug", options = options) { @@ -240,7 +240,7 @@ fun getSomething() = 10 @Test fun testMultiModuleICNonAndroidModuleIsChanged() { - val project = Project("AndroidIncrementalMultiModule", gradleVersion) + val project = Project("AndroidIncrementalMultiModule") val options = defaultBuildOptions().copy(incremental = true, kotlinDaemonDebugPort = null) project.build("assembleDebug", options = options) { @@ -266,7 +266,7 @@ fun getSomething() = 10 @Test fun testIncrementalBuildWithNoChanges() { - val project = Project("AndroidIncrementalSingleModuleProject", gradleVersion) + val project = Project("AndroidIncrementalSingleModuleProject") val tasksToExecute = listOf( ":app:compileDebugKotlin", ":app:compileDebugJavaWithJavac" @@ -285,7 +285,7 @@ fun getSomething() = 10 @Test fun testAndroidDaggerIC() { - val project = Project("AndroidDaggerProject", gradleVersion) + val project = Project("AndroidDaggerProject") val options = defaultBuildOptions().copy(incremental = true) project.build("assembleDebug", options = options) { @@ -314,7 +314,7 @@ fun getSomething() = 10 @Test fun testAndroidIcepickProject() { - val project = Project("AndroidIcepickProject", gradleVersion) + val project = Project("AndroidIcepickProject") val options = defaultBuildOptions().copy(incremental = false) project.build("assembleDebug", options = options) { @@ -324,7 +324,7 @@ fun getSomething() = 10 @Test fun testAndroidExtensions() { - val project = Project("AndroidExtensionsProject", gradleVersion) + val project = Project("AndroidExtensionsProject") val options = defaultBuildOptions().copy(incremental = false) project.build("assembleDebug", options = options) { @@ -334,7 +334,7 @@ fun getSomething() = 10 @Test fun testAndroidExtensionsIncremental() { - val project = Project("AndroidExtensionsProject", gradleVersion) + val project = Project("AndroidExtensionsProject") val options = defaultBuildOptions().copy(incremental = true) project.build("assembleDebug", options = options) { @@ -365,7 +365,7 @@ fun getSomething() = 10 return } - val project = Project("AndroidExtensionsManyVariants", gradleVersion) + val project = Project("AndroidExtensionsManyVariants") val options = defaultBuildOptions().copy(incremental = false) project.build("assemble", options = options) { @@ -382,7 +382,7 @@ fun getSomething() = 10 @Test fun testAndroidExtensionsSpecificFeatures() { - val project = Project("AndroidExtensionsSpecificFeatures", gradleVersion) + val project = Project("AndroidExtensionsSpecificFeatures") val options = defaultBuildOptions().copy(incremental = false) project.build("assemble", options = options) { @@ -405,7 +405,7 @@ fun getSomething() = 10 } @Test - fun testMultiplatformAndroidCompile() = with(Project("multiplatformAndroidProject", gradleVersion)) { + fun testMultiplatformAndroidCompile() = with(Project("multiplatformAndroidProject")) { setupWorkingDir() if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index 25d5797cece..ca5875ea8a0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -19,6 +19,9 @@ abstract class BaseGradleIT { protected open fun defaultBuildOptions(): BuildOptions = BuildOptions(withDaemon = true) + protected open val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.None + @Before fun setUp() { workingDir = createTempDir("BaseGradleIT") @@ -179,7 +182,7 @@ abstract class BaseGradleIT { open inner class Project( val projectName: String, - val gradleVersionRequirement: GradleVersionRequired = GradleVersionRequired.None, + val gradleVersionRequirement: GradleVersionRequired = defaultGradleVersion, directoryPrefix: String? = null, val minLogLevel: LogLevel = LogLevel.DEBUG ) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index 5e7fbc7272b..5d014ebb552 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -14,7 +14,7 @@ open class Kapt3Android32IT : Kapt3AndroidIT() { override val androidGradlePluginVersion: String get() = "3.2.0-beta01" - override val gradleVersion: GradleVersionRequired + override val defaultGradleVersion: GradleVersionRequired get() = GradleVersionRequired.AtLeast("4.6") } @@ -22,7 +22,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { protected open val androidGradlePluginVersion: String get() = "2.3.0" - protected open val gradleVersion: GradleVersionRequired + override val defaultGradleVersion: GradleVersionRequired get() = GradleVersionRequired.AtLeast("4.1") override fun defaultBuildOptions() = @@ -33,7 +33,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test fun testButterKnife() { - val project = Project("android-butterknife", gradleVersion, directoryPrefix = "kapt2") + val project = Project("android-butterknife", directoryPrefix = "kapt2") project.build("assembleDebug") { assertSuccessful() @@ -64,7 +64,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test fun testDagger() { - val project = Project("android-dagger", gradleVersion, directoryPrefix = "kapt2") + val project = Project("android-dagger", directoryPrefix = "kapt2") project.build("assembleDebug") { assertSuccessful() @@ -90,7 +90,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test fun testKt15001() { - val project = Project("kt15001", gradleVersion, directoryPrefix = "kapt2") + val project = Project("kt15001", directoryPrefix = "kapt2") project.build("assembleDebug") { assertSuccessful() @@ -100,7 +100,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test fun testDbFlow() { - val project = Project("android-dbflow", gradleVersion, directoryPrefix = "kapt2") + val project = Project("android-dbflow", directoryPrefix = "kapt2") project.build("assembleDebug") { assertSuccessful() @@ -114,7 +114,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test fun testRealm() { - val project = Project("android-realm", gradleVersion, directoryPrefix = "kapt2") + val project = Project("android-realm", directoryPrefix = "kapt2") project.build("assembleDebug") { assertSuccessful() @@ -128,7 +128,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() { @Test open fun testDatabinding() { - val project = Project("android-databinding", gradleVersion, directoryPrefix = "kapt2") + val project = Project("android-databinding", directoryPrefix = "kapt2") if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) { project.setupWorkingDir()