aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/buildjar/javatests/com/google/devtools/build/buildjar/VanillaJavaBuilderTest.java
diff options
context:
space:
mode:
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.java61
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");
+ }
}