simple test on dependent module recompilation

KT-8487
This commit is contained in:
Ilya Chernikov
2016-02-19 18:53:55 +01:00
committed by Alexey Tsvetkov
parent 1f83745862
commit 42cbd940c3
8 changed files with 94 additions and 0 deletions
@@ -3,6 +3,8 @@ package org.jetbrains.kotlin.gradle
import org.gradle.api.logging.LogLevel
import org.jetbrains.kotlin.gradle.plugin.CleanUpBuildListener
import org.junit.Test
import java.io.File
import kotlin.test.assertTrue
class KotlinGradleIT: BaseGradleIT() {
@@ -123,6 +125,41 @@ class KotlinGradleIT: BaseGradleIT() {
}
}
@Test
fun testSimpleMultiprojectIncremental() {
fun Project.modify(body: Project.() -> Unit): Project {
this.body()
return this
}
Project("multiprojectWithDependency", "1.6").build("-PincrementalOption=true", "assemble") {
assertSuccessful()
assertReportExists("projA")
assertContains(":projA:compileKotlin")
assertNotContains("projA:compileKotlin UP-TO-DATE")
assertReportExists("projB")
assertContains(":projB:compileKotlin")
assertNotContains("projB:compileKotlin UP-TO-DATE")
}
Project("multiprojectWithDependency", "1.6").modify {
val oldSrc = File(this.projectDir, "projA/src/main/kotlin/a.kt")
val newSrc = File(this.projectDir, "projA/src/main/kotlin/a.kt.new")
assertTrue { oldSrc.exists() }
assertTrue { newSrc.exists() }
newSrc.copyTo(oldSrc, overwrite = true)
}.build("-PincrementalOption=true", "assemble") {
assertSuccessful()
assertReportExists("projA")
assertContains(":projA:compileKotlin")
assertContains("[KOTLIN] is incremental == true")
assertNotContains("projA:compileKotlin UP-TO-DATE")
assertReportExists("projB")
assertContains(":projB:compileKotlin")
assertNotContains("projB:compileKotlin UP-TO-DATE")
}
}
@Test
fun testKotlinInJavaRoot() {
Project("kotlinInJavaRoot", "1.6").build("build") {
@@ -0,0 +1,11 @@
buildscript {
repositories {
mavenCentral()
maven {
url 'file://' + pathToKotlinPlugin
}
}
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.1-SNAPSHOT'
}
}
@@ -0,0 +1,13 @@
apply plugin: "kotlin"
repositories {
mavenCentral()
maven {
url 'file://' + pathToKotlinPlugin
}
}
compileKotlin {
experimentalIncremental = incrementalOption
}
@@ -0,0 +1,4 @@
package projA
fun getInfo(): String = "s1"
@@ -0,0 +1,4 @@
package projA
fun getInfo(): String = "s1_changed"
@@ -0,0 +1,16 @@
apply plugin: "kotlin"
repositories {
mavenCentral()
maven {
url 'file://' + pathToKotlinPlugin
}
}
dependencies {
compile project(':projA')
}
compileKotlin {
experimentalIncremental = incrementalOption
}
@@ -0,0 +1,7 @@
package projB
fun main(vararg args: String) {
System.out.println(projA.getInfo())
}
@@ -0,0 +1,2 @@
include 'projA'
include 'projB'