Allow overriding default Gradle version per test class

This commit is contained in:
Alexey Tsvetkov
2018-07-02 19:47:42 +03:00
parent 05fa8b7451
commit bab8c97c09
3 changed files with 40 additions and 37 deletions
@@ -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)) {
@@ -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
) {
@@ -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()