changeset 10075:c0e9ae41ed17

unittest/aot: add testcase for BoxingSnippets
author Bernhard Urban <bernhard.urban@jku.at>
date Mon, 17 Jun 2013 22:09:44 +0200
parents e8fbc5fd3440
children 25de9c96a032
files graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java
diffstat 1 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java	Mon Jun 17 17:50:09 2013 +0200
+++ b/graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java	Mon Jun 17 22:09:44 2013 +0200
@@ -165,6 +165,33 @@
         assertEquals(0, result.getNodes(ReadNode.class).count());
     }
 
+    public static Boolean getBoxedBoolean() {
+        return Boolean.valueOf(true);
+    }
+
+    @Test
+    public void testBoxedBooleanAOT() {
+        StructuredGraph result = compile("getBoxedBoolean", true);
+
+        assertEquals(2, result.getNodes(FloatingReadNode.class).count());
+        assertEquals(1, result.getNodes(UnsafeCastNode.class).count());
+        assertEquals(1, result.getNodes().filter(ConstantNode.class).count());
+        ConstantNode constant = result.getNodes().filter(ConstantNode.class).first();
+        assertEquals(Kind.Long, constant.kind());
+        assertEquals(((HotSpotResolvedObjectType) runtime.lookupJavaType(Boolean.class)).klass(), constant.asConstant());
+    }
+
+    @Test
+    public void testBoxedBoolean() {
+        StructuredGraph result = compile("getBoxedBoolean", false);
+        assertEquals(0, result.getNodes(FloatingReadNode.class).count());
+        assertEquals(0, result.getNodes(UnsafeCastNode.class).count());
+        assertEquals(1, result.getNodes().filter(ConstantNode.class).count());
+        ConstantNode constant = result.getNodes().filter(ConstantNode.class).first();
+        assertEquals(Kind.Object, constant.kind());
+        assertEquals(Boolean.TRUE, constant.asConstant().asObject());
+    }
+
     private StructuredGraph compile(String test, boolean compileAOT) {
         StructuredGraph graph = parse(test);
         ResolvedJavaMethod method = graph.method();