# HG changeset patch # User Bernhard Urban # Date 1371045883 -7200 # Node ID b2f1168ee37ff310b414cc0cf2a771d211b83f48 # Parent e65727799325e79d30770b59f3fcd7c9b7b5e18e unittest/aot: add test for primitive types diff -r e65727799325 -r b2f1168ee37f graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java --- 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 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 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();