blob: e01d9903c6a7048e9d13ea2fc72b3eef8b582119 [file] [log] [blame]
import com.android.tools.internal.testing.DevicePool;
apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'jacoco-tools-base'
repositories {
maven { url = uri(rootProject.cloneArtifacts.repository) }
}
dependencies {
testCompile project(':base:build-system:integration-test:framework')
testCompile project(':analytics-library:protos')
testCompile project(':apksig')
testCompile project(':base:builder')
testCompile project(':base:builder-model')
testCompile project(':base:gradle')
testCompile project(':base:instant-run:instant-run-client')
testCompile project(':base:sdk-common')
testCompile project(':base:testing-infrastructure:device-pool:device-provider')
testCompile project(':base:testutils')
testCompile project(':base:java-lib-model')
testCompile libs.kotlin_stdlib
testCompile gradleApi()
testCompile libs.apache_commons_io
testCompile libs.apache_commons_lang
testCompile libs.google_api_client
testCompile libs.google_storage_client
testCompile libs.groovy
testCompile libs.junit
testCompile libs.protobuf
testCompile libs.protobuf_util
testCompile libs.truth
testCompile libs.mockito_core
// Add dependency on plugin code. Exclude transitive dependencies to avoid conflict due to
// Groovy versions.
testCompile(project(':base:gradle-core')) {
transitive = false
}
testCompile(project(':base:gradle')) {
transitive = false
}
}
configurations {
// google-api-client depends on guava-jdk5.
testCompile.exclude group: 'com.google.guava', module: 'guava-jdk5'
}
def testEnvironment =
/*
* We keep the following properties:
* - starting with CUSTOM_ e.g. CUSTOM_ANDROID_HOME
* - DEBUG_INNER_TEST: to allow us to debug tests
* - starting with LC_ or LANG_, so the locale is set up correctly
* - BUILDBOT_: to get BuildBot specific information e.g. buildId used for performance tests
*/
System.getenv().findAll { entry ->
String key = entry.key
key.startsWith("CUSTOM_") ||
key.startsWith("ACTD_") || // environment variables for uploading to Dana
key.startsWith("PERF_") || // environment variables for controlling perf tests
key == "USE_GRADLE_NIGHTLY" ||
key == "BENCHMARK_EXPERIMENT" ||
key == "DEBUG_INNER_TEST" ||
// For NDK tests on Windows. See init.mk.
key == "OS" ||
key == "PROCESSOR_ARCHITECTURE" ||
key == "ProgramW6432" ||
key == "ProgramFiles(x86)" ||
key == "TMP" ||
key == "TEMP" ||
// For AccentCharacterAndProguardTest
key.startsWith("LC_") ||
key.startsWith("LANG") ||
key.startsWith("BUILDBOT_")
}
testEnvironment << [
TEST_TMPDIR:
System.env.TEST_TMPDIR != null
? new File(System.env.TEST_TMPDIR)
: project.buildDir, // Use the same environment variable as Bazel for now.
CUSTOM_REPO: new File(rootProject.ext.androidHostOut, "repo").toString()
+ File.pathSeparator
+ rootProject.file("../prebuilts/tools/common/m2/repository/").toString(),
CUSTOM_IMPROVED_DEPENDENCY_RESOLUTION : "true"
]
File tempFile = new File(project.buildDir, 'tmp')
task("createTestTempDirectory") {
doLast { tempFile.mkdirs() }
}
test {
description =
"Runs the data binding gradle integration tests"
systemProperties['jar.path'] = jar.archivePath
systemProperties['java.io.tmpdir'] = tempFile.absolutePath
environment = testEnvironment
// Always run the task, when requested.
outputs.upToDateWhen { false }
maxParallelForks = Runtime.runtime.availableProcessors() / 4
testLogging {
events = ['FAILED', 'SKIPPED', 'STANDARD_ERROR']
displayGranularity = 2 // Show test class and method.
exceptionFormat = 'full'
showCauses = true
}
dependsOn ':publishLocal' , createTestTempDirectory
}