Allow overriding default Gradle version per test class
This commit is contained in:
+28
-28
@@ -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)) {
|
||||
|
||||
+4
-1
@@ -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
|
||||
) {
|
||||
|
||||
+8
-8
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user