summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorkmb <kmb@google.com>2018-03-16 18:52:15 -0700
committerIvan Gavrilovic <gavra@google.com>2018-05-04 10:40:14 +0100
commitfaa0690d2152c090607a8db136ba9104bc22bb4e (patch)
tree1e4d112907db30b8a86676105a832769ed2f15e4 /test
parent44b53edaa9c5611c75e08da2fdc5d91c7b0ac6ae (diff)
downloaddesugar-faa0690d2152c090607a8db136ba9104bc22bb4e.tar.gz
Reflect core library moves in super calls, even in default method stubs. Always generate default method stubs for emulated methods.
RELNOTES: None. PiperOrigin-RevId: 189423933 GitOrigin-RevId: 44a26afb091f2d23d68bcad53e45a319b299867a Change-Id: I8eaecb5a1a29051a14d0529005a56a225b2f4d8b
Diffstat (limited to 'test')
-rw-r--r--test/java/com/google/devtools/build/android/desugar/CoreLibrarySupportTest.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/java/com/google/devtools/build/android/desugar/CoreLibrarySupportTest.java b/test/java/com/google/devtools/build/android/desugar/CoreLibrarySupportTest.java
index 42f1f78..9b43207 100644
--- a/test/java/com/google/devtools/build/android/desugar/CoreLibrarySupportTest.java
+++ b/test/java/com/google/devtools/build/android/desugar/CoreLibrarySupportTest.java
@@ -19,6 +19,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.android.desugar.io.CoreLibraryRewriter;
import java.util.Collection;
import java.util.Comparator;
+import java.util.LinkedHashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
import org.junit.Test;
@@ -165,6 +166,58 @@ public class CoreLibrarySupportTest {
}
@Test
+ public void testGetCoreInterfaceRewritingTarget_emulatedImplementationMoved() throws Exception {
+ CoreLibrarySupport support =
+ new CoreLibrarySupport(
+ new CoreLibraryRewriter(""),
+ Thread.currentThread().getContextClassLoader(),
+ ImmutableList.of("java/util/Moved"),
+ ImmutableList.of("java/util/Map"),
+ ImmutableList.of("java/util/LinkedHashMap#forEach->java/util/Moved"),
+ ImmutableList.of());
+ assertThat(
+ support.getCoreInterfaceRewritingTarget(
+ Opcodes.INVOKEINTERFACE,
+ "java/util/Map",
+ "forEach",
+ "(Ljava/util/function/BiConsumer;)V",
+ true))
+ .isEqualTo(Map.class);
+ assertThat(
+ support.getCoreInterfaceRewritingTarget(
+ Opcodes.INVOKESPECIAL,
+ "java/util/Map",
+ "forEach",
+ "(Ljava/util/function/BiConsumer;)V",
+ true))
+ .isEqualTo(Map.class);
+ assertThat(
+ support.getCoreInterfaceRewritingTarget(
+ Opcodes.INVOKEVIRTUAL,
+ "java/util/LinkedHashMap",
+ "forEach",
+ "(Ljava/util/function/BiConsumer;)V",
+ false))
+ .isEqualTo(Map.class);
+ assertThat(
+ support.getCoreInterfaceRewritingTarget(
+ Opcodes.INVOKESPECIAL,
+ "java/util/LinkedHashMap",
+ "forEach",
+ "(Ljava/util/function/BiConsumer;)V",
+ false))
+ .isEqualTo(LinkedHashMap.class);
+ assertThat(
+ support.getCoreInterfaceRewritingTarget(
+ Opcodes.INVOKESPECIAL,
+ "java/util/HashMap",
+ "forEach",
+ "(Ljava/util/function/BiConsumer;)V",
+ false))
+ .isEqualTo(Map.class);
+ }
+
+ @Test
public void testGetCoreInterfaceRewritingTarget_abstractMethod() throws Exception {
CoreLibrarySupport support =
new CoreLibrarySupport(