From 1dadf84c40ccc30b8312f40194d1a13b6da1d203 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Tue, 13 Feb 2018 19:07:07 +0300 Subject: [PATCH] Check Java interop in Maven IC tests --- .../IncrementalCompilationIT.java | 18 ++++++- .../MavenExecutionResult.java | 3 ++ .../src/test/resources/kotlinSimple/pom.xml | 51 +++++++++++++++---- .../kotlinSimple/src/main/java/JavaAUser.java | 5 ++ .../kotlinSimple/src/main/java/JavaUtil.java | 3 ++ .../kotlinSimple/src/main/kotlin/A.kt | 1 + 6 files changed, 70 insertions(+), 11 deletions(-) create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaAUser.java create mode 100644 libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaUtil.java diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java index 9430fc20c1f..20e6c1b5c90 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/IncrementalCompilationIT.java @@ -21,7 +21,9 @@ public class IncrementalCompilationIT extends MavenITBase { "target/classes/test.properties", "target/classes/A.class", "target/classes/UseAKt.class", - "target/classes/Dummy.class" + "target/classes/Dummy.class", + "target/classes/JavaUtil.class", + "target/classes/JavaAUser.class" }; } @@ -73,4 +75,18 @@ public class IncrementalCompilationIT extends MavenITBase { // todo rebuild and compare output } + + @Test + public void testJavaChanged() throws Exception { + MavenProject project = new MavenProject("kotlinSimple"); + project.exec("package"); + + File aKt = project.file("src/main/java/JavaUtil.java"); + MavenTestUtils.replaceFirstInFile(aKt, "CONST = 0", "CONST = 1"); + + project.exec("package") + .succeeded() + .filesExist(kotlinSimpleOutputPaths()) + .compiledKotlin("src/main/kotlin/A.kt"); + } } diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenExecutionResult.java b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenExecutionResult.java index ca092118722..af3231127f2 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenExecutionResult.java +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/java/org.jetbrains.kotlin.maven/MavenExecutionResult.java @@ -2,6 +2,7 @@ package org.jetbrains.kotlin.maven; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; +import kotlin.text.StringsKt; import org.jetbrains.annotations.NotNull; import org.junit.Assert; @@ -91,6 +92,8 @@ class MavenExecutionResult { while (m.find()) { String[] compiledFiles = m.group(1).split(","); for (String path : compiledFiles) { + if (StringsKt.isBlank(path)) continue; + File file = new File(path.trim()); String relativePath = FileUtil.getRelativePath(workingDir, file); normalizedActualPaths.add(FileUtil.normalize(relativePath)); diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/pom.xml b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/pom.xml index 92aea01d0fa..eb947a1b1a0 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/pom.xml +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/pom.xml @@ -21,8 +21,6 @@ - ${project.basedir}/src/main/kotlin - @@ -50,17 +48,50 @@ compile - process-sources - - compile - + compile + + + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/main/java + + test-compile - process-test-sources - - test-compile - + test-compile + + + ${project.basedir}/src/test/kotlin + ${project.basedir}/src/test/java + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.5.1 + + + + default-compile + none + + + + default-testCompile + none + + + java-compile + compile + compile + + + java-test-compile + test-compile + testCompile diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaAUser.java b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaAUser.java new file mode 100644 index 00000000000..a0e54b47c5c --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaAUser.java @@ -0,0 +1,5 @@ +public class JavaAUser { + public static void useA(A a) { + a.foo("abc"); + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaUtil.java b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaUtil.java new file mode 100644 index 00000000000..8525562ba4c --- /dev/null +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/java/JavaUtil.java @@ -0,0 +1,3 @@ +public class JavaUtil { + public static final int CONST = 0; +} \ No newline at end of file diff --git a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/kotlin/A.kt b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/kotlin/A.kt index 0cb3e2f1d8a..c0453d7374e 100644 --- a/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/kotlin/A.kt +++ b/libraries/tools/kotlin-maven-plugin-test/src/test/resources/kotlinSimple/src/main/kotlin/A.kt @@ -1,3 +1,4 @@ class A { fun foo(s: String) = s + s + fun bar() = JavaUtil.CONST } \ No newline at end of file