Test: add android incremental compilation test project

This commit is contained in:
Alexey Tsvetkov
2016-03-24 22:07:09 +03:00
parent bafa9dca48
commit b050722249
9 changed files with 118 additions and 0 deletions
@@ -64,6 +64,29 @@ abstract class AbstractKotlinAndroidGradleTests(
}
}
@Test
fun testIncrementalCompile() {
val project = Project("AndroidIncrementalSingleModuleProject", gradleVersion)
val options = defaultBuildOptions().copy(incremental = true)
project.build("build", options = options) {
assertSuccessful()
}
val getSomethingKt = project.projectDir.walk().filter { it.isFile && it.name.endsWith("getSomething.kt") }.first()
getSomethingKt.writeText("""
package foo
fun getSomething() = 10
""")
project.build("build", options = options) {
assertSuccessful()
assertCompiledKotlinSources(listOf("src/main/kotlin/foo/KotlinActivity1.kt", "src/main/kotlin/foo/getSomething.kt"))
assertCompiledJavaSources(listOf("app/src/main/java/foo/JavaActivity.java"), weakTesting = true)
}
}
@Test
fun testModuleNameAndroid() {
val project = Project("AndroidProject", gradleVersion)
@@ -0,0 +1,54 @@
buildscript {
repositories {
maven {
url 'file://' + pathToKotlinPlugin
}
maven {
url 'http://jcenter.bintray.com'
}
mavenCentral()
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
classpath 'org.jetbrains.kotlin:kotlin-android-extensions:0.1-SNAPSHOT'
classpath 'com.android.tools.build:gradle:' + androidToolsVersion
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+'
}
}
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "foo"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
repositories {
maven {
url 'file://' + pathToKotlinPlugin
}
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:0.1-SNAPSHOT"
}
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="foo" >
<application>
<activity android:name=".JavaActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".KotlinActivity1"/>
<activity android:name=".KotlinActivity2"/>
</application>
</manifest>
@@ -0,0 +1,6 @@
package foo;
import android.app.Activity;
public class JavaActivity extends Activity {
}
@@ -0,0 +1,8 @@
package foo
import android.app.Activity
open class KotlinActivity1 : Activity() {
val usage = getSomething()
}
@@ -0,0 +1,5 @@
package foo
import android.app.Activity
open class KotlinActivity2 : Activity()
@@ -0,0 +1 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.