Test: pass android-build-tools version using project property

The reason is to test the same project with different android-build-tools versions
This commit is contained in:
Alexey Tsvetkov
2016-03-24 16:35:45 +03:00
parent 157c5009f0
commit bafa9dca48
4 changed files with 20 additions and 9 deletions
@@ -3,18 +3,23 @@ package org.jetbrains.kotlin.gradle
import org.junit.Test import org.junit.Test
import java.io.File import java.io.File
private const val DEFAULT_GRADLE_VERSION = "2.3"
class KotlinAndroidGradleCLIOnly : BaseGradleIT() { class KotlinAndroidGradleCLIOnly : AbstractKotlinAndroidGradleTests(gradleVersion = "2.3", androidGradlePluginVersion = "1.5.+")
abstract class AbstractKotlinAndroidGradleTests(
private val gradleVersion: String,
private val androidGradlePluginVersion: String
) : BaseGradleIT() {
override fun defaultBuildOptions() = override fun defaultBuildOptions() =
BuildOptions(withDaemon = true, BuildOptions(withDaemon = true,
assertThreadLeaks = false, assertThreadLeaks = false,
androidHome = File("../../../dependencies/android-sdk-for-tests")) androidHome = File("../../../dependencies/android-sdk-for-tests"),
androidGradlePluginVersion = androidGradlePluginVersion)
@Test @Test
fun testSimpleCompile() { fun testSimpleCompile() {
val project = Project("AndroidProject", DEFAULT_GRADLE_VERSION) val project = Project("AndroidProject", gradleVersion)
project.build("build") { project.build("build") {
assertSuccessful() assertSuccessful()
@@ -61,7 +66,7 @@ class KotlinAndroidGradleCLIOnly : BaseGradleIT() {
@Test @Test
fun testModuleNameAndroid() { fun testModuleNameAndroid() {
val project = Project("AndroidProject", DEFAULT_GRADLE_VERSION) val project = Project("AndroidProject", gradleVersion)
project.build("build") { project.build("build") {
assertContains( assertContains(
@@ -75,7 +75,8 @@ abstract class BaseGradleIT {
* @see [ThreadTracker] * @see [ThreadTracker]
*/ */
val assertThreadLeaks: Boolean = true, val assertThreadLeaks: Boolean = true,
val androidHome: File? = null) val androidHome: File? = null,
val androidGradlePluginVersion: String? = null)
open inner class Project(val projectName: String, val wrapperVersion: String = "1.4", val minLogLevel: LogLevel = LogLevel.DEBUG) { open inner class Project(val projectName: String, val wrapperVersion: String = "1.4", val minLogLevel: LogLevel = LogLevel.DEBUG) {
open val resourcesRoot = File(resourcesRootFile, "testProject/$projectName") open val resourcesRoot = File(resourcesRootFile, "testProject/$projectName")
@@ -212,6 +213,7 @@ abstract class BaseGradleIT {
add("-P${ThreadTracker.ASSERT_THREAD_LEAKS_PROPERTY}=true") add("-P${ThreadTracker.ASSERT_THREAD_LEAKS_PROPERTY}=true")
} }
options.incremental?.let { add("-Pkotlin.incremental=$it") } options.incremental?.let { add("-Pkotlin.incremental=$it") }
options.androidGradlePluginVersion?.let { add("-PandroidToolsVersion=$it")}
} }
private fun Project.createEnvironmentVariablesMap(options: BuildOptions): Map<String, String> = private fun Project.createEnvironmentVariablesMap(options: BuildOptions): Map<String, String> =
@@ -1,5 +1,5 @@
apply plugin: 'android-sdk-manager' apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application' apply plugin: 'com.android.library'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
repositories { repositories {
@@ -1,13 +1,17 @@
buildscript { buildscript {
repositories { repositories {
mavenCentral()
maven { maven {
url 'file://' + pathToKotlinPlugin url 'file://' + pathToKotlinPlugin
} }
maven {
url 'http://jcenter.bintray.com'
}
mavenCentral()
} }
dependencies { dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
classpath 'com.android.tools.build:gradle:1.1.0' classpath ('com.android.tools.build:gradle:' + androidToolsVersion)
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+' classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+'
} }
} }