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 package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel 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.getFileByName
import org.jetbrains.kotlin.gradle.util.getFilesByNames import org.jetbrains.kotlin.gradle.util.getFilesByNames
import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.modify
@@ -11,7 +12,7 @@ import kotlin.test.assertEquals
import kotlin.test.assertTrue import kotlin.test.assertTrue
// 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(androidGradlePluginVersion = "3.2.0") { class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT(androidGradlePluginVersion = AGPVersion.v3_2_0) {
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("4.6") 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 override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.InRange("4.1", "4.10.2") get() = GradleVersionRequired.InRange("4.1", "4.10.2")
} }
abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: String) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) { abstract class KotlinAndroid3GradleIT(androidGradlePluginVersion: AGPVersion) : AbstractKotlinAndroidGradleTests(androidGradlePluginVersion) {
@Test @Test
fun testApplyWithFeaturePlugin() { fun testApplyWithFeaturePlugin() {
val project = Project("AndroidProject") 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() = override fun defaultBuildOptions() =
super.defaultBuildOptions().copy( super.defaultBuildOptions().copy(
@@ -3,6 +3,7 @@ package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel import org.gradle.api.logging.LogLevel
import org.gradle.tooling.GradleConnector import org.gradle.tooling.GradleConnector
import org.gradle.util.GradleVersion import org.gradle.util.GradleVersion
import org.gradle.util.VersionNumber
import org.jetbrains.kotlin.gradle.model.ModelContainer import org.jetbrains.kotlin.gradle.model.ModelContainer
import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction
import org.jetbrains.kotlin.gradle.util.* import org.jetbrains.kotlin.gradle.util.*
@@ -171,7 +172,7 @@ abstract class BaseGradleIT {
val incrementalJs: Boolean? = null, val incrementalJs: Boolean? = null,
val androidHome: File? = null, val androidHome: File? = null,
val javaHome: File? = null, val javaHome: File? = null,
val androidGradlePluginVersion: String? = null, val androidGradlePluginVersion: AGPVersion? = null,
val forceOutputToStdout: Boolean = false, val forceOutputToStdout: Boolean = false,
val debug: Boolean = false, val debug: Boolean = false,
val freeCommandLineArgs: List<String> = emptyList(), val freeCommandLineArgs: List<String> = emptyList(),
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.gradle package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test import org.junit.Test
@@ -30,7 +31,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions = override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy( super.defaultBuildOptions().copy(
withBuildCache = true, withBuildCache = true,
androidGradlePluginVersion = "3.1.0", androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk() androidHome = KotlinTestUtils.findAndroidSdk()
) )
@@ -1,5 +1,6 @@
package org.jetbrains.kotlin.gradle 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.getFileByName
import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils
@@ -11,16 +12,16 @@ class Kapt3WorkersAndroid32IT : Kapt3Android32IT() {
} }
open class Kapt3Android32IT : Kapt3AndroidIT() { open class Kapt3Android32IT : Kapt3AndroidIT() {
override val androidGradlePluginVersion: String override val androidGradlePluginVersion: AGPVersion
get() = "3.2.0" get() = AGPVersion.v3_2_0
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("4.6") get() = GradleVersionRequired.AtLeast("4.6")
} }
open class Kapt3AndroidIT : Kapt3BaseIT() { open class Kapt3AndroidIT : Kapt3BaseIT() {
protected open val androidGradlePluginVersion: String protected open val androidGradlePluginVersion: AGPVersion
get() = "3.0.0" get() = AGPVersion.v3_0_0
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.InRange("4.1", "4.10.2") 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.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test import org.junit.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -20,7 +21,7 @@ class KotlinAndroidExtensionIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy( return super.defaultBuildOptions().copy(
androidGradlePluginVersion = "3.1.0", androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk() androidHome = KotlinTestUtils.findAndroidSdk()
) )
} }
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.model
import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.util.AGPVersion
import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.KotlinTestUtils
import org.junit.Test import org.junit.Test
import kotlin.test.assertEquals import kotlin.test.assertEquals
@@ -20,7 +21,7 @@ class KotlinProjectIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy( return super.defaultBuildOptions().copy(
androidGradlePluginVersion = "3.1.0", androidGradlePluginVersion = AGPVersion.v3_1_0,
androidHome = KotlinTestUtils.findAndroidSdk() 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")
}
}