diff options
-rw-r--r-- | luni/src/test/java/libcore/java/lang/invoke/MethodHandleCombinersTest.java | 16 |
1 files changed, 15 insertions, 1 deletions
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 f7bfff2511..9bf02ef567 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 @@ public class MethodHandleCombinersTest extends TestCase { 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 @@ public class MethodHandleCombinersTest extends TestCase { } 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}); |