1 package dot.junit.opcodes.if_ge;
2 
3 import dot.junit.DxTestCase;
4 import dot.junit.DxUtil;
5 import dot.junit.opcodes.if_ge.d.T_if_ge_1;
6 import dot.junit.opcodes.if_ge.d.T_if_ge_3;
7 
8 public class Test_if_ge extends DxTestCase {
9 
10     /**
11      * @title Case: 5 < 6
12      */
testN1()13     public void testN1() {
14         T_if_ge_1 t = new T_if_ge_1();
15         assertEquals(1234, t.run(5, 6));
16     }
17 
18     /**
19      * @title Case: 0x0f0e0d0c = 0x0f0e0d0c
20      */
testN2()21     public void testN2() {
22         T_if_ge_1 t = new T_if_ge_1();
23         assertEquals(1, t.run(0x0f0e0d0c, 0x0f0e0d0c));
24     }
25 
26     /**
27      * @title Case: 5 > -5
28      */
testN3()29     public void testN3() {
30         T_if_ge_1 t = new T_if_ge_1();
31         assertEquals(1, t.run(5, -5));
32     }
33 
34     /**
35      * @title Arguments = Integer.MAX_VALUE, Integer.MAX_VALUE
36      */
testB1()37     public void testB1() {
38         T_if_ge_1 t = new T_if_ge_1();
39         assertEquals(1, t.run(Integer.MAX_VALUE, Integer.MAX_VALUE));
40     }
41 
42     /**
43      * @title Arguments = Integer.MIN_VALUE, Integer.MAX_VALUE
44      */
testB2()45     public void testB2() {
46         T_if_ge_1 t = new T_if_ge_1();
47         assertEquals(1234, t.run(Integer.MIN_VALUE, Integer.MAX_VALUE));
48     }
49 
50     /**
51      * @title Arguments = Integer.MAX_VALUE, Integer.MIN_VALUE
52      */
testB3()53     public void testB3() {
54         T_if_ge_1 t = new T_if_ge_1();
55         assertEquals(1, t.run(Integer.MAX_VALUE, Integer.MIN_VALUE));
56     }
57 
58     /**
59      * @title Arguments = 0, Integer.MIN_VALUE
60      */
testB4()61     public void testB4() {
62         T_if_ge_1 t = new T_if_ge_1();
63         assertEquals(1, t.run(0, Integer.MIN_VALUE));
64     }
65 
66     /**
67      * @title Arguments = 0, 0
68      */
testB5()69     public void testB5() {
70         T_if_ge_1 t = new T_if_ge_1();
71         assertEquals(1, t.run(0, 0));
72     }
73 
74     /**
75      * @constraint A23
76      * @title  number of registers
77      */
testVFE1()78     public void testVFE1() {
79         load("dot.junit.opcodes.if_ge.d.T_if_ge_4", VerifyError.class);
80     }
81 
82 
83 
84     /**
85      * @constraint B1
86      * @title  types of arguments - int, double
87      */
testVFE2()88     public void testVFE2() {
89         load("dot.junit.opcodes.if_ge.d.T_if_ge_5", VerifyError.class);
90     }
91 
92     /**
93      * @constraint B1
94      * @title  types of arguments - long, int
95      */
testVFE3()96     public void testVFE3() {
97         load("dot.junit.opcodes.if_ge.d.T_if_ge_6", VerifyError.class);
98     }
99 
100     /**
101      * @constraint B1
102      * @title  types of arguments - int, reference
103      */
testVFE4()104     public void testVFE4() {
105         load("dot.junit.opcodes.if_ge.d.T_if_ge_7", VerifyError.class);
106     }
107 
108     /**
109      * @constraint B1
110      * @title Types of arguments - int, float. The verifier checks that ints
111      * and floats are not used interchangeably.
112      */
testVFE5()113     public void testVFE5() {
114         load("dot.junit.opcodes.if_ge.d.T_if_ge_3", VerifyError.class);
115     }
116 
117      /**
118      * @constraint A6
119      * @title  branch target shall be inside the method
120      */
testVFE6()121     public void testVFE6() {
122         load("dot.junit.opcodes.if_ge.d.T_if_ge_9", VerifyError.class);
123     }
124 
125     /**
126      * @constraint A6
127      * @title  branch target shall not be "inside" instruction
128      */
testVFE7()129     public void testVFE7() {
130         load("dot.junit.opcodes.if_ge.d.T_if_ge_10", VerifyError.class);
131     }
132 
133     /**
134      * @constraint n/a
135      * @title  branch target shall 0
136      */
testVFE8()137     public void testVFE8() {
138         load("dot.junit.opcodes.if_ge.d.T_if_ge_11", VerifyError.class);
139     }
140 
141 }
142