1 package dot.junit.opcodes.if_le;
2 
3 import dot.junit.DxTestCase;
4 import dot.junit.DxUtil;
5 import dot.junit.opcodes.if_le.d.T_if_le_1;
6 import dot.junit.opcodes.if_le.d.T_if_le_11;
7 
8 public class Test_if_le extends DxTestCase {
9 
10     /**
11      * @title Case: 5 < 6
12      */
testN1()13     public void testN1() {
14         T_if_le_1 t = new T_if_le_1();
15         assertEquals(1, t.run(5, 6));
16     }
17 
18     /**
19      * @title Case: 0x0f0e0d0c = 0x0f0e0d0c
20      */
testN2()21     public void testN2() {
22         T_if_le_1 t = new T_if_le_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_le_1 t = new T_if_le_1();
31         assertEquals(1234, 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_le_1 t = new T_if_le_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_le_1 t = new T_if_le_1();
47         assertEquals(1, 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_le_1 t = new T_if_le_1();
55         assertEquals(1234, 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_le_1 t = new T_if_le_1();
63         assertEquals(1234, t.run(0, Integer.MIN_VALUE));
64     }
65 
66     /**
67      * @title Arguments = 0, 0
68      */
testB5()69     public void testB5() {
70         T_if_le_1 t = new T_if_le_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_le.d.T_if_le_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_le.d.T_if_le_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_le.d.T_if_le_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_le.d.T_if_le_7", VerifyError.class);
106     }
107 
108     /**
109      * @constraint A6
110      * @title  branch target shall be inside the method
111      */
testVFE5()112     public void testVFE5() {
113         load("dot.junit.opcodes.if_le.d.T_if_le_9", VerifyError.class);
114     }
115 
116     /**
117      * @constraint A6
118      * @title branch target shall not be "inside" instruction
119      */
testVFE6()120     public void testVFE6() {
121         load("dot.junit.opcodes.if_le.d.T_if_le_10", VerifyError.class);
122     }
123 
124     /**
125      * @constraint n/a
126      * @title branch target shall not be 0
127      */
testVFE7()128     public void testVFE7() {
129         load("dot.junit.opcodes.if_le.d.T_if_le_12", VerifyError.class);
130     }
131 
132     /**
133      * @constraint B1
134      * @title Types of arguments - int, float. The verifier checks that ints
135      * and floats are not used interchangeably.
136      */
testVFE8()137     public void testVFE8() {
138         load("dot.junit.opcodes.if_le.d.T_if_le_11", VerifyError.class);
139     }
140 }
141