diff --git a/compiler/android-tests/android-module/build.gradle b/compiler/android-tests/android-module/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..6cd64ade62f0647e590023d0133ecf043949c044 --- /dev/null +++ b/compiler/android-tests/android-module/build.gradle @@ -0,0 +1,114 @@ +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') +} diff --git a/compiler/android-tests/android-module/dependencies.gradle b/compiler/android-tests/android-module/dependencies.gradle new file mode 100644 index 0000000000000000000000000000000000000000..f896967e099e59f15be7887fdc3e1408edff2d83 --- /dev/null +++ b/compiler/android-tests/android-module/dependencies.gradle @@ -0,0 +1,84 @@ +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" + } + + + +} diff --git a/compiler/android-tests/build.gradle b/compiler/android-tests/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..ceac741fb4acbe79785a54b07bbe507a9e68b471 --- /dev/null +++ b/compiler/android-tests/build.gradle @@ -0,0 +1,36 @@ +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") +}