diff options
Diffstat (limited to 'src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java')
-rw-r--r-- | src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java index b64e2d8a5b..7194c7bfe8 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java @@ -92,6 +92,8 @@ public class VanillaJavaBuilderTest { output.toString(), "--bootclasspath", Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), "--classdir", temporaryFolder.newFolder().toString())); @@ -135,6 +137,8 @@ public class VanillaJavaBuilderTest { output.toString(), "--bootclasspath", Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), "--classdir", temporaryFolder.newFolder().toString())); @@ -174,6 +178,8 @@ public class VanillaJavaBuilderTest { output.toString(), "--bootclasspath", Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), "--classdir", temporaryFolder.newFolder().toString())); @@ -218,6 +224,8 @@ public class VanillaJavaBuilderTest { output.toString(), "--bootclasspath", Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), "--classdir", classDir.toString())); @@ -262,10 +270,63 @@ public class VanillaJavaBuilderTest { output.toString(), "--bootclasspath", Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), "--classdir", temporaryFolder.newFolder().toString())); assertThat(result.output()).isEmpty(); assertThat(result.ok()).isTrue(); } + + @Test + public void nativeHeaders() throws Exception { + Path foo = temporaryFolder.newFile("FooWithNativeMethod.java").toPath(); + Path bar = temporaryFolder.newFile("BarWithNativeMethod.java").toPath(); + Path output = temporaryFolder.newFile("out.jar").toPath(); + Path nativeHeaderOutput = temporaryFolder.newFile("out-native-headers.jar").toPath(); + Files.write( + foo, + ImmutableList.of( + "package test;", + "public class FooWithNativeMethod {", + " public static native byte[] g(String s);", + "}"), + UTF_8); + Files.write( + bar, + ImmutableList.of( + "package test;", + "public class BarWithNativeMethod {", + " public static native byte[] g(String s);", + "}"), + UTF_8); + + VanillaJavaBuilderResult result = + run( + ImmutableList.of( + "--javacopts", + "-Xep:FallThrough:ERROR", + "--", + "--sources", + foo.toString(), + bar.toString(), + "--output", + output.toString(), + "--native_header_output", + nativeHeaderOutput.toString(), + "--bootclasspath", + Paths.get(System.getProperty("java.home")).resolve("lib/rt.jar").toString(), + "--tempdir", + temporaryFolder.newFolder().toString(), + "--classdir", + temporaryFolder.newFolder().toString())); + + assertThat(result.output()).isEmpty(); + assertThat(result.ok()).isTrue(); + + ImmutableMap<String, byte[]> outputEntries = readJar(nativeHeaderOutput.toFile()); + assertThat(outputEntries.keySet()) + .containsAllOf("test_BarWithNativeMethod.h", "test_FooWithNativeMethod.h"); + } } |