diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 8de085f157f..914cc6c1fbf 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -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( diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index bae19e686a8..80180eb31b8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -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 = emptyList(), diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt index 2db7a59b866..33d3fae00ac 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt @@ -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() ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index f338fe41995..06206e6771b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -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") diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt index f9e2d7436a1..db00ff928ab 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt @@ -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() ) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt index f07b4c75163..e6a8f9a5e33 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt @@ -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() ) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt new file mode 100644 index 00000000000..32f948c4718 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt @@ -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") + } +} \ No newline at end of file