Merge "MethodHandle: Add tests for invokeWithArguments(List<?>)"
diff --git a/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java b/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java
index f7bfff2..9bf02ef 100644
--- a/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java
+++ b/luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java
@@ -1214,7 +1214,13 @@
 
         Object ret = handle.invokeWithArguments(new Object[]{"a", "b", "c"});
         assertEquals(42, (int) ret);
-        handle.invokeWithArguments(new String[]{"a", "b", "c"});
+        ret = handle.invokeWithArguments(new String[]{"a", "b", "c"});
+        assertEquals(42, (int) ret);
+
+        // Also test the versions that take a List<?> instead of an array.
+        ret = handle.invokeWithArguments(Arrays.asList(new Object[] {"a", "b", "c"}));
+        assertEquals(42, (int) ret);
+        ret = handle.invokeWithArguments(Arrays.asList(new String[]{"a", "b", "c"}));
         assertEquals(42, (int) ret);
 
         // Pass in an array that's too small. Should throw an IAE.
@@ -1225,6 +1231,14 @@
         } catch (WrongMethodTypeException expected) {
         }
 
+        try {
+            handle.invokeWithArguments(Arrays.asList(new Object[]{"a", "b"}));
+            fail();
+        } catch (IllegalArgumentException expected) {
+        } catch (WrongMethodTypeException expected) {
+        }
+
+
         // Test implicit unboxing.
         MethodType methodType2 = MethodType.methodType(int.class,
                 new Class<?>[]{String.class, int.class});