summaryrefslogtreecommitdiff
path: root/libjava/testsuite/libjava.lang/InvokeReturn.java
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libjava/testsuite/libjava.lang/InvokeReturn.java
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libjava/testsuite/libjava.lang/InvokeReturn.java')
-rw-r--r--libjava/testsuite/libjava.lang/InvokeReturn.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/libjava/testsuite/libjava.lang/InvokeReturn.java b/libjava/testsuite/libjava.lang/InvokeReturn.java
new file mode 100644
index 000000000..9263dbe40
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/InvokeReturn.java
@@ -0,0 +1,80 @@
+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 (UnsupportedOperationException e) {
+ // We get this on targets which don't support reflection (no
+ // libffi port yet). We might as well fake PASSes.
+ System.out.println("true\nfalse\nc\n5\n6\n7\n8.0\n9.0");
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+}