Mercurial > hg > graal-jvmci-8
diff graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java @ 20171:9ca538e3e46e
DSL: add tests for comparing against a byte and a short in guards.
author | Chris Seaton <chris.seaton@oracle.com> |
---|---|
date | Mon, 06 Apr 2015 13:43:39 +0100 |
parents | 953c813b8e7a |
children | a84d57d27727 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Sun Apr 05 20:40:52 2015 +0100 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Mon Apr 06 13:43:39 2015 +0100 @@ -34,8 +34,10 @@ import com.oracle.truffle.api.dsl.test.LimitTestFactory.MethodLimitTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardCompareWithFieldTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardComplexTestFactory; +import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualByteIntTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualIntLongTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualLongIntTestFactory; +import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualShortIntTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardFieldTestFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardGreaterEqualTestFactory; @@ -85,7 +87,7 @@ @NodeChild static class GuardEqualIntLongTest extends ValueNode { - @Specialization(guards = "value == 1") + @Specialization(guards = "1 == value") static String do1(long value) { return "do1"; } @@ -97,6 +99,48 @@ } @Test + public void testGuardEqualByteInt() { + CallTarget root = createCallTarget(GuardEqualByteIntTestFactory.getInstance()); + assertEquals("do1", root.call((byte) 1)); + assertEquals("do2", root.call((byte) 2)); + assertEquals("do1", root.call((byte) 1)); + } + + @NodeChild + static class GuardEqualByteIntTest extends ValueNode { + @Specialization(guards = "value == 1") + static String do1(byte value) { + return "do1"; + } + + @Specialization + static String do2(byte value) { + return "do2"; + } + } + + @Test + public void testGuardEqualShortInt() { + CallTarget root = createCallTarget(GuardEqualShortIntTestFactory.getInstance()); + assertEquals("do1", root.call((short) 1)); + assertEquals("do2", root.call((short) 2)); + assertEquals("do1", root.call((short) 1)); + } + + @NodeChild + static class GuardEqualShortIntTest extends ValueNode { + @Specialization(guards = "value == 1") + static String do1(short value) { + return "do1"; + } + + @Specialization + static String do2(short value) { + return "do2"; + } + } + + @Test public void testGuardEqualLongInt() { CallTarget root = createCallTarget(GuardEqualLongIntTestFactory.getInstance()); assertEquals("do1", root.call(1)); @@ -106,7 +150,7 @@ @NodeChild static class GuardEqualLongIntTest extends ValueNode { - @Specialization(guards = "1 == value") + @Specialization(guards = "value == 1") static String do1(long value) { return "do1"; }