comparison 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
comparison
equal deleted inserted replaced
20170:953c813b8e7a 20171:9ca538e3e46e
32 import com.oracle.truffle.api.dsl.test.LimitTestFactory.ConstantLimitTestFactory; 32 import com.oracle.truffle.api.dsl.test.LimitTestFactory.ConstantLimitTestFactory;
33 import com.oracle.truffle.api.dsl.test.LimitTestFactory.LocalLimitTestFactory; 33 import com.oracle.truffle.api.dsl.test.LimitTestFactory.LocalLimitTestFactory;
34 import com.oracle.truffle.api.dsl.test.LimitTestFactory.MethodLimitTestFactory; 34 import com.oracle.truffle.api.dsl.test.LimitTestFactory.MethodLimitTestFactory;
35 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardCompareWithFieldTestFactory; 35 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardCompareWithFieldTestFactory;
36 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardComplexTestFactory; 36 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardComplexTestFactory;
37 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualByteIntTestFactory;
37 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualIntLongTestFactory; 38 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualIntLongTestFactory;
38 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualLongIntTestFactory; 39 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualLongIntTestFactory;
40 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualShortIntTestFactory;
39 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualTestFactory; 41 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardEqualTestFactory;
40 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardFieldTestFactory; 42 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardFieldTestFactory;
41 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardGreaterEqualTestFactory; 43 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardGreaterEqualTestFactory;
42 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardGreaterTestFactory; 44 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardGreaterTestFactory;
43 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardLessEqualTestFactory; 45 import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardLessEqualTestFactory;
83 assertEquals("do1", root.call(1)); 85 assertEquals("do1", root.call(1));
84 } 86 }
85 87
86 @NodeChild 88 @NodeChild
87 static class GuardEqualIntLongTest extends ValueNode { 89 static class GuardEqualIntLongTest extends ValueNode {
90 @Specialization(guards = "1 == value")
91 static String do1(long value) {
92 return "do1";
93 }
94
95 @Specialization
96 static String do2(long value) {
97 return "do2";
98 }
99 }
100
101 @Test
102 public void testGuardEqualByteInt() {
103 CallTarget root = createCallTarget(GuardEqualByteIntTestFactory.getInstance());
104 assertEquals("do1", root.call((byte) 1));
105 assertEquals("do2", root.call((byte) 2));
106 assertEquals("do1", root.call((byte) 1));
107 }
108
109 @NodeChild
110 static class GuardEqualByteIntTest extends ValueNode {
88 @Specialization(guards = "value == 1") 111 @Specialization(guards = "value == 1")
89 static String do1(long value) { 112 static String do1(byte value) {
90 return "do1"; 113 return "do1";
91 } 114 }
92 115
93 @Specialization 116 @Specialization
94 static String do2(long value) { 117 static String do2(byte value) {
118 return "do2";
119 }
120 }
121
122 @Test
123 public void testGuardEqualShortInt() {
124 CallTarget root = createCallTarget(GuardEqualShortIntTestFactory.getInstance());
125 assertEquals("do1", root.call((short) 1));
126 assertEquals("do2", root.call((short) 2));
127 assertEquals("do1", root.call((short) 1));
128 }
129
130 @NodeChild
131 static class GuardEqualShortIntTest extends ValueNode {
132 @Specialization(guards = "value == 1")
133 static String do1(short value) {
134 return "do1";
135 }
136
137 @Specialization
138 static String do2(short value) {
95 return "do2"; 139 return "do2";
96 } 140 }
97 } 141 }
98 142
99 @Test 143 @Test
104 assertEquals("do1", root.call(1)); 148 assertEquals("do1", root.call(1));
105 } 149 }
106 150
107 @NodeChild 151 @NodeChild
108 static class GuardEqualLongIntTest extends ValueNode { 152 static class GuardEqualLongIntTest extends ValueNode {
109 @Specialization(guards = "1 == value") 153 @Specialization(guards = "value == 1")
110 static String do1(long value) { 154 static String do1(long value) {
111 return "do1"; 155 return "do1";
112 } 156 }
113 157
114 @Specialization 158 @Specialization