Test case for Method.invoke()

Jeff Sturm jsturm@one-point.com
Sat Feb 23 08:30:00 GMT 2002


Here is the test case corresponding to the recent ffi_call patches.

OK?

Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/libjava/testsuite/ChangeLog,v
retrieving revision 1.176
diff -u -p -r1.176 ChangeLog
--- ChangeLog	2002/02/20 04:18:53	1.176
+++ ChangeLog	2002/02/23 16:17:57
@@ -1,3 +1,8 @@
+2002-02-23  Jeff Sturm  <jsturm@one-point.com>
+
+	* libjava.lang/InvokeReturn.java: New file.
+	* libjava.lang/InvokeReturn.out: New file.
+
 2002-02-20  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
 
 	* lib/libjava.exp: Add "xfail-byte-output" and "xfail-source-output".
Index: libjava.lang/InvokeReturn.java
===================================================================
RCS file: InvokeReturn.java
diff -N InvokeReturn.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ InvokeReturn.java	Sat Feb 23 08:17:57 2002
@@ -0,0 +1,76 @@
+import java.lang.reflect.Method;
+
+// Test return values of Method.invoke.
+public class InvokeReturn {
+  public boolean bTrue() {
+    return true;
+  }
+
+  public boolean bFalse() {
+    return false;
+  }
+
+  public char cc() {
+    return 'c';
+  }
+
+  public short s5() {
+    return (short)5;
+  }
+
+  public int i6() {
+    return 6;
+  }
+
+  public long l7() {
+    return (long)7;
+  }
+
+  public float f8() {
+    return (float)8.0;
+  }
+
+  public double d9() {
+    return 9.0;
+  }
+
+  public static void main(String[] args) {
+    try {
+      Object o = new InvokeReturn();
+      Method m;
+
+      // test boolean result
+      m = o.getClass().getDeclaredMethod("bTrue", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      m = o.getClass().getDeclaredMethod("bFalse", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test char result
+      m = o.getClass().getDeclaredMethod("cc", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test short result
+      m = o.getClass().getDeclaredMethod("s5", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test int result
+      m = o.getClass().getDeclaredMethod("i6", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test long result
+      m = o.getClass().getDeclaredMethod("l7", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test float result
+      m = o.getClass().getDeclaredMethod("f8", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test double result
+      m = o.getClass().getDeclaredMethod("d9", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+    } catch (Throwable t) {
+      t.printStackTrace();
+    }
+  }
+}
Index: libjava.lang/InvokeReturn.out
===================================================================
RCS file: InvokeReturn.out
diff -N InvokeReturn.out
--- /dev/null	Tue May  5 13:32:27 1998
+++ InvokeReturn.out	Sat Feb 23 08:17:57 2002
@@ -0,0 +1,8 @@
+true
+false
+c
+5
+6
+7
+8.0
+9.0



More information about the Java-patches mailing list