Check Java interop in Maven IC tests

This commit is contained in:
Alexey Tsvetkov
2018-02-13 19:07:07 +03:00
parent 07c94a5586
commit 1dadf84c40
6 changed files with 70 additions and 11 deletions
@@ -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");
}
}
@@ -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));
@@ -21,8 +21,6 @@
</dependencies>
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<pluginManagement>
<plugins>
<plugin>
@@ -50,17 +48,50 @@
<executions>
<execution>
<id>compile</id>
<phase>process-sources</phase>
<goals>
<goal>compile</goal>
</goals>
<goals> <goal>compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/main/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
<execution>
<id>test-compile</id>
<phase>process-test-sources</phase>
<goals>
<goal>test-compile</goal>
</goals>
<goals> <goal>test-compile</goal> </goals>
<configuration>
<sourceDirs>
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
<sourceDir>${project.basedir}/src/test/java</sourceDir>
</sourceDirs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<executions>
<!-- Replacing default-compile as it is treated specially by maven -->
<execution>
<id>default-compile</id>
<phase>none</phase>
</execution>
<!-- Replacing default-testCompile as it is treated specially by maven -->
<execution>
<id>default-testCompile</id>
<phase>none</phase>
</execution>
<execution>
<id>java-compile</id>
<phase>compile</phase>
<goals> <goal>compile</goal> </goals>
</execution>
<execution>
<id>java-test-compile</id>
<phase>test-compile</phase>
<goals> <goal>testCompile</goal> </goals>
</execution>
</executions>
</plugin>
@@ -0,0 +1,5 @@
public class JavaAUser {
public static void useA(A a) {
a.foo("abc");
}
}
@@ -0,0 +1,3 @@
public class JavaUtil {
public static final int CONST = 0;
}
@@ -1,3 +1,4 @@
class A {
fun foo(s: String) = s + s
fun bar() = JavaUtil.CONST
}