Add tests for java-library support.

This commit is contained in:
Sergey Igushkin
2017-08-16 21:38:50 +03:00
parent 1848bc1840
commit d5f0607cef
9 changed files with 79 additions and 0 deletions
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.util.getFileByName
import org.jetbrains.kotlin.gradle.util.modify
import org.junit.Assume
import org.junit.Test
import java.io.File
import java.util.zip.ZipFile
@@ -125,4 +126,35 @@ class KotlinGradlePluginMultiVersionIT : BaseMultiGradleVersionIT() {
assertContains(":compileKotlin", ":compileTestKotlin")
}
}
@Test
fun testJavaLibraryCompatibility() {
Assume.assumeTrue("The java-library plugin is supported only in Gradle 3.4+ (current: $gradleVersion)",
gradleVersion.split(".").map(String::toInt).let { (major, minor) ->
major > 3 || major == 3 && minor >= 4
})
val project = Project("javaLibraryProject", gradleVersion)
val compileKotlinTasks = listOf(":libA:compileKotlin", ":libB:compileKotlin", ":app:compileKotlin")
project.build("build") {
assertSuccessful()
assertNotContains("Could not register Kotlin output")
assertTasksExecuted(compileKotlinTasks)
}
// Modify a library source and its usage and re-build the project:
for (path in listOf("libA/src/main/kotlin/HelloA.kt", "libB/src/main/kotlin/HelloB.kt", "app/src/main/kotlin/App.kt")) {
File(project.projectDir, path).modify { original ->
original.replace("helloA", "helloA1")
.replace("helloB", "helloB1")
.apply { assert(!equals(original)) }
}
}
project.build("build") {
assertSuccessful()
assertNotContains("Could not register Kotlin output")
assertTasksExecuted(compileKotlinTasks)
}
}
}
@@ -0,0 +1,7 @@
apply plugin: 'java'
apply plugin: 'kotlin'
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
compile project(':libB')
}
@@ -0,0 +1,6 @@
import com.example.*
fun main(args: Array<String>) {
println(helloA())
println(helloB())
}
@@ -0,0 +1,14 @@
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
subprojects {
repositories {
mavenLocal()
}
}
@@ -0,0 +1,6 @@
apply plugin: 'java-library'
apply plugin: 'kotlin'
dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
@@ -0,0 +1,7 @@
apply plugin: 'java-library'
apply plugin: 'kotlin'
dependencies {
api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
api project(':libA')
}