Mercurial > hg > graal-compiler
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();