aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/java_tools/buildjar/javatests/com
diff options
context:
space:
mode:
authorGravatar Liam Miller-Cushon <cushon@google.com>2016-10-04 23:56:19 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-05 12:26:56 +0000
commit18e2ada66111cf21c880a2d60481141ee670dc55 (patch)
tree194257b69a14146b10e85d2074189ccf0b063283 /src/java_tools/buildjar/javatests/com
parent60e16cb6f55331339ac6ef63e6eb88443d41a101 (diff)
Put turbine bridge pruning behind a flag
-- MOS_MIGRATED_REVID=135171940
Diffstat (limited to 'src/java_tools/buildjar/javatests/com')
-rw-r--r--src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java42
1 files changed, 40 insertions, 2 deletions
diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
index 76454ae476..5cbd08cc36 100644
--- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
+++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java
@@ -706,8 +706,7 @@ public class JavacTurbineTest {
@Test
public void constantsEnum() throws Exception {
addSourceLines(
- "TheEnum.java",
- // TODO(cushon): fix google-java-format's handling of lists of string literals
+ "TheEnum.java", //
"public enum TheEnum {",
" ONE, TWO, THREE;",
"}");
@@ -1273,6 +1272,7 @@ public class JavacTurbineTest {
" public String call() { return \"\"; }",
"}");
+ optionsBuilder.addAllJavacOpts(ImmutableList.of("-XDdropBridgesInTurbine=true"));
compile();
Map<String, byte[]> outputs = collectOutputs();
@@ -1298,4 +1298,42 @@ public class JavacTurbineTest {
};
assertThat(text).isEqualTo(Joiner.on('\n').join(expected));
}
+
+ @Test
+ public void preserveBridge() throws Exception {
+ addSourceLines(
+ "Bridge.java",
+ "import java.util.concurrent.Callable;",
+ "class Bridge implements Callable<String> {",
+ " public String call() { return \"\"; }",
+ "}");
+
+ compile();
+
+ Map<String, byte[]> outputs = collectOutputs();
+
+ assertThat(outputs.keySet()).containsExactly("Bridge.class");
+
+ String text = textify(outputs.get("Bridge.class"));
+ String[] expected = {
+ "// class version 52.0 (52)",
+ "// access flags 0x20",
+ "// signature Ljava/lang/Object;Ljava/util/concurrent/Callable<Ljava/lang/String;>;",
+ "// declaration: Bridge implements java.util.concurrent.Callable<java.lang.String>",
+ "class Bridge implements java/util/concurrent/Callable {",
+ "",
+ "",
+ " // access flags 0x0",
+ " <init>()V",
+ "",
+ " // access flags 0x1",
+ " public call()Ljava/lang/String;",
+ "",
+ " // access flags 0x1041",
+ " public synthetic bridge call()Ljava/lang/Object; throws java/lang/Exception ",
+ "}",
+ ""
+ };
+ assertThat(text).isEqualTo(Joiner.on('\n').join(expected));
+ }
}