changeset 5801:a24d30822e4f

added tests for null receiver for non-static invokes
author Doug Simon <doug.simon@oracle.com>
date Tue, 10 Jul 2012 10:08:49 +0200
parents be428fe2d86c
children 93f6ad9a0596
files graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java	Tue Jul 10 09:36:34 2012 +0200
+++ b/graal/com.oracle.graal.snippets.test/src/com/oracle/graal/snippets/InvokeTest.java	Tue Jul 10 10:08:49 2012 +0200
@@ -44,8 +44,9 @@
     }
 
     public static class A implements I {
+        final String name = "A";
         public String virtualMethod(String s) {
-            return s;
+            return name + s;
         }
     }
 
@@ -60,7 +61,15 @@
         test("invokespecialConstructor", "a string");
         test("invokespecial", this, "a string");
         test("invokevirtual", new A(), "a string");
+        test("invokevirtual2", new A(), "a string");
         test("invokeinterface", new A(), "a string");
+        Object[] args = {null};
+        test("invokestatic", args);
+        test("invokespecialConstructor", args);
+        test("invokespecial", null, null);
+        test("invokevirtual", null, null);
+        test("invokevirtual2", null, null);
+        test("invokeinterface", null, null);
     }
 
     public static String invokestatic(String s) {
@@ -83,6 +92,10 @@
         return a.virtualMethod(s);
     }
 
+    public static String invokevirtual2(A a, String s) {
+        return a.virtualMethod(s) + a.virtualMethod(s);
+    }
+
     public static String invokeinterface(I i, String s) {
         return i.virtualMethod(s);
     }