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
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
class KotlinAndroidGradleIT :
|
class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion = "2.3.0") {
|
||||||
AbstractKotlinAndroidGradleTests(gradleVersion = GradleVersionRequired.AtLeast("3.4"), 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
|
// 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
|
@Test
|
||||||
fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject", gradleVersion)) {
|
fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) {
|
||||||
setupWorkingDir()
|
setupWorkingDir()
|
||||||
|
|
||||||
gradleBuildScript(subproject = "Android").appendText(
|
gradleBuildScript(subproject = "Android").appendText(
|
||||||
@@ -80,16 +84,15 @@ class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(GradleVersionRequired.AtL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(GradleVersionRequired.AtLeast("4.1"), "3.0.0")
|
class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = "3.0.0") {
|
||||||
|
override val defaultGradleVersion: GradleVersionRequired
|
||||||
abstract class KotlinAndroid3GradleIT(
|
get() = GradleVersionRequired.AtLeast("4.1")
|
||||||
gradleVersionRequired: GradleVersionRequired,
|
}
|
||||||
androidGradlePluginVersion: String
|
|
||||||
) : AbstractKotlinAndroidGradleTests(gradleVersionRequired, androidGradlePluginVersion) {
|
|
||||||
|
|
||||||
|
abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: String) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) {
|
||||||
@Test
|
@Test
|
||||||
fun testApplyWithFeaturePlugin() {
|
fun testApplyWithFeaturePlugin() {
|
||||||
val project = Project("AndroidProject", gradleVersion)
|
val project = Project("AndroidProject")
|
||||||
|
|
||||||
project.setupWorkingDir()
|
project.setupWorkingDir()
|
||||||
File(project.projectDir, "Lib/build.gradle").modify { text ->
|
File(project.projectDir, "Lib/build.gradle").modify { text ->
|
||||||
@@ -115,10 +118,7 @@ abstract class KotlinAndroid3GradleIT(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class AbstractKotlinAndroidGradleTests(
|
abstract class AbstractKotlinAndroidGradleTests(private val androidGradlePluginVersion: String) : BaseGradleIT() {
|
||||||
protected val gradleVersion: GradleVersionRequired,
|
|
||||||
private val androidGradlePluginVersion: String
|
|
||||||
) : BaseGradleIT() {
|
|
||||||
|
|
||||||
override fun defaultBuildOptions() =
|
override fun defaultBuildOptions() =
|
||||||
super.defaultBuildOptions().copy(
|
super.defaultBuildOptions().copy(
|
||||||
@@ -128,7 +128,7 @@ abstract class AbstractKotlinAndroidGradleTests(
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testSimpleCompile() {
|
fun testSimpleCompile() {
|
||||||
val project = Project("AndroidProject", gradleVersion)
|
val project = Project("AndroidProject")
|
||||||
|
|
||||||
val modules = listOf("Android", "Lib")
|
val modules = listOf("Android", "Lib")
|
||||||
val flavors = listOf("Flavor1", "Flavor2")
|
val flavors = listOf("Flavor1", "Flavor2")
|
||||||
@@ -171,7 +171,7 @@ abstract class AbstractKotlinAndroidGradleTests(
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAssembleAndroidTestFirst() {
|
fun testAssembleAndroidTestFirst() {
|
||||||
val project = Project("AndroidProject", gradleVersion, minLogLevel = LogLevel.INFO)
|
val project = Project("AndroidProject", minLogLevel = LogLevel.INFO)
|
||||||
|
|
||||||
// Execute 'assembleAndroidTest' first, without 'build' side effects
|
// Execute 'assembleAndroidTest' first, without 'build' side effects
|
||||||
project.build("assembleAndroidTest") {
|
project.build("assembleAndroidTest") {
|
||||||
@@ -192,7 +192,7 @@ abstract class AbstractKotlinAndroidGradleTests(
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testIncrementalCompile() {
|
fun testIncrementalCompile() {
|
||||||
val project = Project("AndroidIncrementalSingleModuleProject", gradleVersion)
|
val project = Project("AndroidIncrementalSingleModuleProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = true)
|
val options = defaultBuildOptions().copy(incremental = true)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -221,7 +221,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testMultiModuleIC() {
|
fun testMultiModuleIC() {
|
||||||
val project = Project("AndroidProject", gradleVersion)
|
val project = Project("AndroidProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = true)
|
val options = defaultBuildOptions().copy(incremental = true)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -240,7 +240,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testMultiModuleICNonAndroidModuleIsChanged() {
|
fun testMultiModuleICNonAndroidModuleIsChanged() {
|
||||||
val project = Project("AndroidIncrementalMultiModule", gradleVersion)
|
val project = Project("AndroidIncrementalMultiModule")
|
||||||
val options = defaultBuildOptions().copy(incremental = true, kotlinDaemonDebugPort = null)
|
val options = defaultBuildOptions().copy(incremental = true, kotlinDaemonDebugPort = null)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -266,7 +266,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testIncrementalBuildWithNoChanges() {
|
fun testIncrementalBuildWithNoChanges() {
|
||||||
val project = Project("AndroidIncrementalSingleModuleProject", gradleVersion)
|
val project = Project("AndroidIncrementalSingleModuleProject")
|
||||||
val tasksToExecute = listOf(
|
val tasksToExecute = listOf(
|
||||||
":app:compileDebugKotlin",
|
":app:compileDebugKotlin",
|
||||||
":app:compileDebugJavaWithJavac"
|
":app:compileDebugJavaWithJavac"
|
||||||
@@ -285,7 +285,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidDaggerIC() {
|
fun testAndroidDaggerIC() {
|
||||||
val project = Project("AndroidDaggerProject", gradleVersion)
|
val project = Project("AndroidDaggerProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = true)
|
val options = defaultBuildOptions().copy(incremental = true)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -314,7 +314,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidIcepickProject() {
|
fun testAndroidIcepickProject() {
|
||||||
val project = Project("AndroidIcepickProject", gradleVersion)
|
val project = Project("AndroidIcepickProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = false)
|
val options = defaultBuildOptions().copy(incremental = false)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -324,7 +324,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidExtensions() {
|
fun testAndroidExtensions() {
|
||||||
val project = Project("AndroidExtensionsProject", gradleVersion)
|
val project = Project("AndroidExtensionsProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = false)
|
val options = defaultBuildOptions().copy(incremental = false)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -334,7 +334,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidExtensionsIncremental() {
|
fun testAndroidExtensionsIncremental() {
|
||||||
val project = Project("AndroidExtensionsProject", gradleVersion)
|
val project = Project("AndroidExtensionsProject")
|
||||||
val options = defaultBuildOptions().copy(incremental = true)
|
val options = defaultBuildOptions().copy(incremental = true)
|
||||||
|
|
||||||
project.build("assembleDebug", options = options) {
|
project.build("assembleDebug", options = options) {
|
||||||
@@ -365,7 +365,7 @@ fun getSomething() = 10
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
val project = Project("AndroidExtensionsManyVariants", gradleVersion)
|
val project = Project("AndroidExtensionsManyVariants")
|
||||||
val options = defaultBuildOptions().copy(incremental = false)
|
val options = defaultBuildOptions().copy(incremental = false)
|
||||||
|
|
||||||
project.build("assemble", options = options) {
|
project.build("assemble", options = options) {
|
||||||
@@ -382,7 +382,7 @@ fun getSomething() = 10
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAndroidExtensionsSpecificFeatures() {
|
fun testAndroidExtensionsSpecificFeatures() {
|
||||||
val project = Project("AndroidExtensionsSpecificFeatures", gradleVersion)
|
val project = Project("AndroidExtensionsSpecificFeatures")
|
||||||
val options = defaultBuildOptions().copy(incremental = false)
|
val options = defaultBuildOptions().copy(incremental = false)
|
||||||
|
|
||||||
project.build("assemble", options = options) {
|
project.build("assemble", options = options) {
|
||||||
@@ -405,7 +405,7 @@ fun getSomething() = 10
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testMultiplatformAndroidCompile() = with(Project("multiplatformAndroidProject", gradleVersion)) {
|
fun testMultiplatformAndroidCompile() = with(Project("multiplatformAndroidProject")) {
|
||||||
setupWorkingDir()
|
setupWorkingDir()
|
||||||
|
|
||||||
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
||||||
|
|||||||
+4
-1
@@ -19,6 +19,9 @@ abstract class BaseGradleIT {
|
|||||||
|
|
||||||
protected open fun defaultBuildOptions(): BuildOptions = BuildOptions(withDaemon = true)
|
protected open fun defaultBuildOptions(): BuildOptions = BuildOptions(withDaemon = true)
|
||||||
|
|
||||||
|
protected open val defaultGradleVersion: GradleVersionRequired
|
||||||
|
get() = GradleVersionRequired.None
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
workingDir = createTempDir("BaseGradleIT")
|
workingDir = createTempDir("BaseGradleIT")
|
||||||
@@ -179,7 +182,7 @@ abstract class BaseGradleIT {
|
|||||||
|
|
||||||
open inner class Project(
|
open inner class Project(
|
||||||
val projectName: String,
|
val projectName: String,
|
||||||
val gradleVersionRequirement: GradleVersionRequired = GradleVersionRequired.None,
|
val gradleVersionRequirement: GradleVersionRequired = defaultGradleVersion,
|
||||||
directoryPrefix: String? = null,
|
directoryPrefix: String? = null,
|
||||||
val minLogLevel: LogLevel = LogLevel.DEBUG
|
val minLogLevel: LogLevel = LogLevel.DEBUG
|
||||||
) {
|
) {
|
||||||
|
|||||||
+8
-8
@@ -14,7 +14,7 @@ open class Kapt3Android32IT : Kapt3AndroidIT() {
|
|||||||
override val androidGradlePluginVersion: String
|
override val androidGradlePluginVersion: String
|
||||||
get() = "3.2.0-beta01"
|
get() = "3.2.0-beta01"
|
||||||
|
|
||||||
override val gradleVersion: GradleVersionRequired
|
override val defaultGradleVersion: GradleVersionRequired
|
||||||
get() = GradleVersionRequired.AtLeast("4.6")
|
get() = GradleVersionRequired.AtLeast("4.6")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
protected open val androidGradlePluginVersion: String
|
protected open val androidGradlePluginVersion: String
|
||||||
get() = "2.3.0"
|
get() = "2.3.0"
|
||||||
|
|
||||||
protected open val gradleVersion: GradleVersionRequired
|
override val defaultGradleVersion: GradleVersionRequired
|
||||||
get() = GradleVersionRequired.AtLeast("4.1")
|
get() = GradleVersionRequired.AtLeast("4.1")
|
||||||
|
|
||||||
override fun defaultBuildOptions() =
|
override fun defaultBuildOptions() =
|
||||||
@@ -33,7 +33,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testButterKnife() {
|
fun testButterKnife() {
|
||||||
val project = Project("android-butterknife", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-butterknife", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
project.build("assembleDebug") {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
@@ -64,7 +64,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testDagger() {
|
fun testDagger() {
|
||||||
val project = Project("android-dagger", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-dagger", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
project.build("assembleDebug") {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
@@ -90,7 +90,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testKt15001() {
|
fun testKt15001() {
|
||||||
val project = Project("kt15001", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("kt15001", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
project.build("assembleDebug") {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
@@ -100,7 +100,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testDbFlow() {
|
fun testDbFlow() {
|
||||||
val project = Project("android-dbflow", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-dbflow", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
project.build("assembleDebug") {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
@@ -114,7 +114,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testRealm() {
|
fun testRealm() {
|
||||||
val project = Project("android-realm", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-realm", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
project.build("assembleDebug") {
|
project.build("assembleDebug") {
|
||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
@@ -128,7 +128,7 @@ open class Kapt3AndroidIT : Kapt3BaseIT() {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
open fun testDatabinding() {
|
open fun testDatabinding() {
|
||||||
val project = Project("android-databinding", gradleVersion, directoryPrefix = "kapt2")
|
val project = Project("android-databinding", directoryPrefix = "kapt2")
|
||||||
|
|
||||||
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
if (!isLegacyAndroidGradleVersion(androidGradlePluginVersion)) {
|
||||||
project.setupWorkingDir()
|
project.setupWorkingDir()
|
||||||
|
|||||||
Reference in New Issue
Block a user