Use class instead of string to hold AGP version in tests

This commit is contained in:
Alexey Tsvetkov
2018-11-01 00:16:31 +03:00
parent ca79efdeec
commit 6782d8c5c8
7 changed files with 43 additions and 12 deletions
@@ -1,6 +1,7 @@
package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.getFileByName
import org.jetbrains.kotlin.gradle.util.getFilesByNames
import org.jetbrains.kotlin.gradle.util.modify
@@ -11,7 +12,7 @@ import kotlin.test.assertEquals
import kotlin.test.assertTrue
// TODO If we there is a way to fetch the latest Android plugin version, test against the latest version
class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = "3.2.0") {
class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = AGPVersion.v3_2_0) {
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("4.6")
@@ -230,12 +231,12 @@ class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersio
}
}
class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = "3.0.0") {
class KotlinAndroid30GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = AGPVersion.v3_0_0) {
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.InRange("4.1", "4.10.2")
}
abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: String) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) {
abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: AGPVersion) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) {
@Test
fun testApplyWithFeaturePlugin() {
val project = Project("AndroidProject")
@@ -264,7 +265,7 @@ abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: String) : Abst
}
}
abstract class AbstractKotlinAndroidGradleTests(val androidGradlePluginVersion: String) : BaseGradleIT() {
abstract class AbstractKotlinAndroidGradleTests(val androidGradlePluginVersion: AGPVersion) : BaseGradleIT() {
override fun defaultBuildOptions() =
super.defaultBuildOptions().copy(
@@ -3,6 +3,7 @@ package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel
import org.gradle.tooling.GradleConnector
import org.gradle.util.GradleVersion
import org.gradle.util.VersionNumber
import org.jetbrains.kotlin.gradle.model.ModelContainer
import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction
import org.jetbrains.kotlin.gradle.util.*
@@ -171,7 +172,7 @@ abstract class BaseGradleIT {
val incrementalJs: Boolean? = null,
val androidHome: File? = null,
val javaHome: File? = null,
val androidGradlePluginVersion: String? = null,
val androidGradlePluginVersion: AGPVersion? = null,
val forceOutputToStdout: Boolean = false,
val debug: Boolean = false,
val freeCommandLineArgs: List<String> = emptyList(),
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test
@@ -30,7 +31,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy(
withBuildCache = true,
androidGradlePluginVersion = "3.1.0",
androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk()
)
@@ -1,5 +1,6 @@
package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.getFileByName
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.test.KotlinTestUtils
@@ -11,16 +12,16 @@ class Kapt3WorkersAndroid32IT : Kapt3Android32IT() {
}
open class Kapt3Android32IT : Kapt3AndroidIT() {
override val androidGradlePluginVersion: String
get() = "3.2.0"
override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_2_0
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("4.6")
}
open class Kapt3AndroidIT : Kapt3BaseIT() {
protected open val androidGradlePluginVersion: String
get() = "3.0.0"
protected open val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_0_0
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.InRange("4.1", "4.10.2")
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.model
import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test
import kotlin.test.assertEquals
@@ -20,7 +21,7 @@ class KotlinAndroidExtensionIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy(
androidGradlePluginVersion = "3.1.0",
androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk()
)
}
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.model
import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test
import kotlin.test.assertEquals
@@ -20,7 +21,7 @@ class KotlinProjectIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy(
androidGradlePluginVersion = "3.1.0",
androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk()
)
}
@@ -0,0 +1,25 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.gradle.util
import org.gradle.util.VersionNumber
class AGPVersion private constructor(private val versionNumber: VersionNumber) {
operator fun compareTo(other: AGPVersion): Int =
versionNumber.compareTo(other.versionNumber)
override fun toString(): String =
versionNumber.toString()
companion object {
fun fromString(versionString: String): AGPVersion =
AGPVersion(VersionNumber.parse(versionString))
val v3_0_0 = fromString("3.0.0")
val v3_1_0 = fromString("3.1.0")
val v3_2_0 = fromString("3.2.0")
}
}