summaryrefslogtreecommitdiffstats
path: root/libjava/testsuite/libjava.lang
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/testsuite/libjava.lang')
-rw-r--r--libjava/testsuite/libjava.lang/InvokeInterface.java55
-rw-r--r--libjava/testsuite/libjava.lang/InvokeInterface.out6
2 files changed, 61 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/InvokeInterface.java b/libjava/testsuite/libjava.lang/InvokeInterface.java
new file mode 100644
index 00000000000..6f4dc617d39
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/InvokeInterface.java
@@ -0,0 +1,55 @@
+import java.lang.reflect.*;
+
+interface one
+{
+ int n(int N);
+}
+
+interface two
+{
+ int nn(int N);
+}
+
+interface three
+{
+ int nnn(int N);
+}
+
+class arse implements one, two
+{
+ public int n(int N) { return N; }
+ public int nn(int N) { return N*2; }
+}
+
+class arsey implements two, one, three
+{
+ public int n(int N) { return N*4; }
+ public int nn(int N) { return N*8; }
+ public int nnn(int N) { return N*16; }
+}
+
+public class InvokeInterface extends arse
+{
+ int f ()
+ {
+ return flunk.nn(1);
+ }
+ static two flunk = new arse();
+ static three flunkey = new arsey();
+ public static void main(String[] s) throws Throwable
+ {
+ Class[] argtypes = {Integer.TYPE};
+ Method m = two.class.getMethod("nn", argtypes);
+ Object[] args = {new Integer(1)};
+ System.out.println(flunk.nn(1));
+ System.out.println(m.invoke(new arse(), args));
+ m = arse.class.getMethod("nn", argtypes);
+ System.out.println(m.invoke(new arse(), args));
+ m = two.class.getMethod("nn", argtypes);
+ System.out.println(m.invoke(new arsey(), args));
+ m = three.class.getMethod("nnn", argtypes);
+ System.out.println(m.invoke(new arsey(), args));
+ m = arsey.class.getMethod("nnn", argtypes);
+ System.out.println(m.invoke(new arsey(), args));
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/InvokeInterface.out b/libjava/testsuite/libjava.lang/InvokeInterface.out
new file mode 100644
index 00000000000..803d02666a2
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/InvokeInterface.out
@@ -0,0 +1,6 @@
+2
+2
+2
+8
+16
+16
OpenPOWER on IntegriCloud