summaryrefslogtreecommitdiff
path: root/test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java')
-rw-r--r--test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java b/test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java
index 8321d75..20e6028 100644
--- a/test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java
+++ b/test/java/com/google/devtools/build/android/desugar/DesugarJava8FunctionalTest.java
@@ -23,6 +23,9 @@ import com.google.devtools.build.android.desugar.testdata.java8.ConcreteDefaultI
import com.google.devtools.build.android.desugar.testdata.java8.ConcreteOverridesDefaultWithLambda;
import com.google.devtools.build.android.desugar.testdata.java8.DefaultInterfaceMethodWithStaticInitializer;
import com.google.devtools.build.android.desugar.testdata.java8.DefaultInterfaceWithBridges;
+import com.google.devtools.build.android.desugar.testdata.java8.DefaultMethodFromSeparateJava8Target;
+import com.google.devtools.build.android.desugar.testdata.java8.DefaultMethodFromSeparateJava8TargetOverridden;
+import com.google.devtools.build.android.desugar.testdata.java8.DefaultMethodTransitivelyFromSeparateJava8Target;
import com.google.devtools.build.android.desugar.testdata.java8.FunctionWithDefaultMethod;
import com.google.devtools.build.android.desugar.testdata.java8.FunctionalInterfaceWithInitializerAndDefaultMethods;
import com.google.devtools.build.android.desugar.testdata.java8.GenericDefaultInterfaceWithLambda;
@@ -111,6 +114,12 @@ public class DesugarJava8FunctionalTest extends DesugarFunctionalTest {
}
@Test
+ public void testBootclasspathMethodInvocations() {
+ InterfaceMethod concrete = new InterfaceMethod.Concrete();
+ assertThat(concrete.defaultInvokingBootclasspathMethods("Larry")).isEqualTo("Larry");
+ }
+
+ @Test
public void testStaticMethodsInInterface_explicitAndLambdaBody() {
List<Long> result = FunctionWithDefaultMethod.DoubleInts.add(ImmutableList.of(7, 39, 8), 3);
assertThat(result).containsExactly(10L, 42L, 11L).inOrder();
@@ -394,4 +403,16 @@ public class DesugarJava8FunctionalTest extends DesugarFunctionalTest {
.getExpectedInitializationOrder());
}
}
+
+ /**
+ * Tests that default methods on the classpath are correctly handled. We'll also verify the
+ * metadata that's emitted for this case to make sure the binary-wide double-check for correct
+ * desugaring of default and static interface methods keeps working (b/65645388).
+ */
+ @Test
+ public void testDefaultMethodsInSeparateTarget() {
+ assertThat(new DefaultMethodFromSeparateJava8Target().dflt()).isEqualTo("dflt");
+ assertThat(new DefaultMethodTransitivelyFromSeparateJava8Target().dflt()).isEqualTo("dflt");
+ assertThat(new DefaultMethodFromSeparateJava8TargetOverridden().dflt()).isEqualTo("override");
+ }
}