changeset 10012:b2f1168ee37f

unittest/aot: add test for primitive types
author Bernhard Urban <bernhard.urban@jku.at>
date Wed, 12 Jun 2013 16:04:43 +0200
parents e65727799325
children 767ef799b323
files graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java
diffstat 1 files changed, 32 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java	Wed Jun 12 13:18:49 2013 +0200
+++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java	Wed Jun 12 16:04:43 2013 +0200
@@ -35,7 +35,6 @@
 import com.oracle.graal.compiler.test.*;
 import com.oracle.graal.graph.iterators.*;
 import com.oracle.graal.hotspot.meta.*;
-import com.oracle.graal.hotspot.phases.*;
 import com.oracle.graal.java.*;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.extended.*;
@@ -64,14 +63,18 @@
     public void testStaticFinalObjectAOT() {
         StructuredGraph result = compile("getStaticFinalObject", true);
         assert result.getNodes().filter(ConstantNode.class).count() == 1;
+        assert result.getNodes().filter(ConstantNode.class).first().kind() == runtime.getTarget().wordKind;
         assert result.getNodes(FloatingReadNode.class).count() == 2;
+        assert result.getNodes(ReadNode.class).count() == 0;
     }
 
     @Test
     public void testStaticFinalObject() {
         StructuredGraph result = compile("getStaticFinalObject", false);
         assert result.getNodes().filter(ConstantNode.class).count() == 1;
+        assert result.getNodes().filter(ConstantNode.class).first().kind() == Kind.Object;
         assert result.getNodes(FloatingReadNode.class).count() == 0;
+        assert result.getNodes(ReadNode.class).count() == 0;
     }
 
     public static Class getClassObject() {
@@ -105,6 +108,34 @@
         assert result.getNodes(ReadNode.class).count() == 0;
     }
 
+    public static Class getPrimitiveClassObject() {
+        return int.class;
+    }
+
+    @Test
+    public void testPrimitiveClassObjectAOT() {
+        StructuredGraph result = compile("getPrimitiveClassObject", true);
+        NodeIterable<ConstantNode> filter = result.getNodes().filter(ConstantNode.class);
+        assert filter.count() == 1;
+        assert filter.first().kind() == runtime.getTarget().wordKind;
+
+        assert result.getNodes(FloatingReadNode.class).count() == 2;
+        assert result.getNodes(ReadNode.class).count() == 0;
+    }
+
+    @Test
+    public void testPrimitiveClassObject() {
+        StructuredGraph result = compile("getPrimitiveClassObject", false);
+        NodeIterable<ConstantNode> filter = result.getNodes().filter(ConstantNode.class);
+        assert filter.count() == 1;
+        Object mirror = filter.first().asConstant().asObject();
+        assert mirror.getClass().equals(Class.class);
+        assert mirror.equals(Integer.TYPE);
+
+        assert result.getNodes(FloatingReadNode.class).count() == 0;
+        assert result.getNodes(ReadNode.class).count() == 0;
+    }
+
     private StructuredGraph compile(String test, boolean compileAOT) {
         StructuredGraph graph = parse(test);
         ResolvedJavaMethod method = graph.method();