# HG changeset patch # User Bernhard Urban # Date 1371499784 -7200 # Node ID c0e9ae41ed177a2e71305e4615d655985a8c1182 # Parent e8fbc5fd3440f89f72b61600298124744468a3b9 unittest/aot: add testcase for BoxingSnippets diff -r e8fbc5fd3440 -r c0e9ae41ed17 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 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();