提交 3366aadc 编写于 作者: M Mikhael Bogdanov

Gradle scripts for android test

上级 efc91606
testRoot = '../../../android.tests.dependencies/'
androidSdkFolder = testRoot +"android-sdk/"
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.3'
}
}
apply plugin: 'android'
android {
sourceSets {
main {
manifest {
srcFile 'tested-module/AndroidManifest.xml'
}
java {
srcDir 'src'
}
res {
srcDir 'res'
}
assets {
srcDir 'assets'
}
resources {
srcDir 'src'
}
}
//instrumentTest.java.srcDir "${testRoot}/temp/src"
instrumentTest.setRoot(".")
instrumentTest.java.srcDir "src/"
}
compileSdkVersion 17
testBuildType "debug"
defaultConfig {
versionCode 1
versionName "1.0"
minSdkVersion 10
targetSdkVersion 17
buildConfig "private final static boolean DEFAULT = true;"
}
buildTypes {
debug {
packageNameSuffix ".debug"
}
}
}
dependencies {
//compile files("libs/test.jar", "libs/kotlin-runtime.jar")
instrumentTestCompile files("libs/test.jar", "libs/kotlin-runtime.jar")
}
task startEmulator() << {
//
println "Creating avd"
ant.exec(executable:"${androidSdkFolder}/tools/android", failOnError:true, logError: true, inputString : "no") {
arg(value: '--silent')
arg(value: 'create')
arg(value: 'avd')
arg(value: '--force')
arg(value: '--name')
arg(value: 'my-avd')
arg(value: '--path')
arg(value: "${androidSdkFolder}/emulator")
arg(value: '--target')
arg(value: '1')
}
println "Starting avd"
ant.exec(executable:"${androidSdkFolder}/tools/emulator", spawn: true) {
arg(value: '-avd')
arg(value: 'my-avd')
arg(value: '-no-audio')
//arg(value: '-no-window')
//arg(value: '-memory')
//arg(value: '512')
}
Thread.sleep(60000)
}
def stopEmulator() {
//TODO
}
gradle.taskGraph.afterTask {Task task, TaskState state ->
if (state.failure) {
println "Stopping emulator"
stopEmulator()
}
}
afterEvaluate { project ->
project.tasks['instrumentTest'].dependsOn('startEmulator')
}
testRoot = '../../../android.tests.dependencies/'
downloadFolder = testRoot + 'download/'
androidSdkFolder = testRoot +"/android-sdk/"
OS_NAME = System.getProperty("os.name").toLowerCase();
isWindows = OS_NAME.startsWith("windows")
isMac = OS_NAME.startsWith("mac")
isLinux = !isWindows && !isMac
os_type = isWindows ? "windows" : (isMac ? "macosx" : "linux")
ext.tools="tools.zip"
ext.platform_tools="platform-tools.zip"
ext.system_image="system_image.zip"
ext.platform="platform.zip"
ext.antext="ant-1.8.0.zip"
ext.usetimestamp=true
task downloadAndroid() << {
println "Uploading ${tools}"
ant.get(src:"https://dl-ssl.google.com/android/repository/tools_r21.1-${os_type}.zip",
dest: downloadFolder + tools, usetimestamp:usetimestamp)
println "Uploading ${platform_tools}"
ant.get(src:"http://dl-ssl.google.com/android/repository/platform-tools_r16.0.2-${os_type}.zip",
dest: downloadFolder + platform_tools, usetimestamp:usetimestamp)
println "Uploading ${system_image}"
ant.get(src:"http://dl.google.com/android/repository/sysimg_armv7a-17_r02.zip",
dest: downloadFolder + system_image, usetimestamp:usetimestamp)
println "Uploading ${platform}"
ant.get(src:"http://dl-ssl.google.com/android/repository/android-17_r02.zip",
dest: downloadFolder + platform, usetimestamp:usetimestamp)
println "Uploading ${antext}"
ant.get(src:"http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.0-bin.zip",
dest: downloadFolder + antext, usetimestamp:usetimestamp)
}
task unpackAndroid(dependsOn: downloadAndroid) << {
println "Unpacking ${tools}"
ant.unzip(src: downloadFolder + tools, dest:androidSdkFolder)
println "Unpacking ${platform_tools}"
ant.unzip(src: downloadFolder + platform_tools, dest:androidSdkFolder)
println "Unpacking ${system_image}"
ant.unzip(src: downloadFolder + system_image, dest:androidSdkFolder + "/system-images/android-16/")
println "Unpacking ${platform}"
ant.unzip(src: downloadFolder + platform, dest:androidSdkFolder + "/platforms" )
println "Unpacking ${antext}"
ant.unzip(src: downloadFolder + antext, dest:androidSdkFolder + "/..")
//set permissions
if (isLinux) {
ant.chmod(dir: androidSdkFolder + "/platform-tools", includes: "*", type:"file", perm: "u+x")
ant.chmod(dir: androidSdkFolder + "/tools", includes: "*", type:"file", perm: "u+x")
}
}
task copyAndroidProject() << {
copy {
from "${testRoot}/temp/libs/test.jar"
into "libs"
}
copy {
from "${testRoot}/temp/src"
into "s"
}
copy {
from "${testRoot}/../dist/kotlinc/lib/kotlin-runtime.jar"
into "libs"
}
}
apply plugin: 'java'
sourceCompatibility = 1.6
kotlin_root="../.."
sourceSets {
main {
java {
srcDir './tests/'
}
java {
srcDir './src/'
}
}
}
task runGenerator(dependsOn: 'classes', type: JavaExec) {
main = 'org.jetbrains.jet.compiler.android.CodegenTestsOnAndroidGenerator'
classpath = sourceSets.main.runtimeClasspath
workingDir "${kotlin_root}"
args "android.tests.dependencies", "android.tests.dependencies/temp"
}
task runJar(dependsOn: 'runGenerator') << {
ant.jar(basedir: "../../android.tests.dependencies/temp/libs/codegen-test-output", destfile:"../../android.tests.dependencies/temp/libs/test.jar")
}
dependencies {
compile fileTree(dir: "${kotlin_root}/ideaSDK/lib/", include: '**/*.jar')
compile fileTree(dir: "${kotlin_root}/ideaSDK/jps/", include: '**/*.jar')
compile fileTree(dir: "${kotlin_root}/dist/kotlinc/lib/", include: '*.jar')
compile files("${kotlin_root}/out/test/compiler-tests")
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册