diff options
author | Liam Miller-Cushon <cushon@google.com> | 2016-10-04 23:56:19 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-10-05 12:26:56 +0000 |
commit | 18e2ada66111cf21c880a2d60481141ee670dc55 (patch) | |
tree | 194257b69a14146b10e85d2074189ccf0b063283 /src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac | |
parent | 60e16cb6f55331339ac6ef63e6eb88443d41a101 (diff) |
Put turbine bridge pruning behind a flag
--
MOS_MIGRATED_REVID=135171940
Diffstat (limited to 'src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac')
-rw-r--r-- | src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java | 42 |
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)); + } } |