1 package dot.junit.opcodes.shl_long_2addr;
2 
3 import dot.junit.DxTestCase;
4 import dot.junit.DxUtil;
5 import dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_1;
6 import dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_7;
7 
8 public class Test_shl_long_2addr extends DxTestCase {
9 
10     /**
11      * @title Arguments = 5000000000l, 3
12      */
testN1()13     public void testN1() {
14         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
15         assertEquals(40000000000l, t.run(5000000000l, 3));
16     }
17 
18     /**
19      * @title Arguments = 5000000000l, 1
20      */
testN2()21     public void testN2() {
22         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
23         assertEquals(10000000000l, t.run(5000000000l, 1));
24     }
25 
26     /**
27      * @title Arguments = -5000000000l, 1
28      */
testN3()29     public void testN3() {
30         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
31         assertEquals(-10000000000l, t.run(-5000000000l, 1));
32     }
33 
34     /**
35      * @title Arguments = 1 & -1
36      */
testN4()37     public void testN4() {
38         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
39         assertEquals(0x8000000000000000l, t.run(1l, -1));
40     }
41 
42     /**
43      * @title Verify that shift distance is actually in range 0 to 64.
44      */
testN5()45     public void testN5() {
46         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
47         assertEquals(130l, t.run(65l, 65));
48     }
49 
50 
51 
52     /**
53      * @title Arguments = 0 & -1
54      */
testB1()55     public void testB1() {
56         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
57         assertEquals(0, t.run(0, -1));
58     }
59 
60     /**
61      * @title Arguments = 1 & 0
62      */
testB2()63     public void testB2() {
64         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
65         assertEquals(1, t.run(1, 0));
66     }
67 
68     /**
69      * @title Arguments = Long.MAX_VALUE & 1
70      */
testB3()71     public void testB3() {
72         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
73         assertEquals(0xfffffffe, t.run(Long.MAX_VALUE, 1));
74     }
75 
76     /**
77      * @title Arguments = Long.MIN_VALUE & 1
78      */
testB4()79     public void testB4() {
80         T_shl_long_2addr_1 t = new T_shl_long_2addr_1();
81         assertEquals(0l, t.run(Long.MIN_VALUE, 1));
82     }
83 
84     /**
85      * @constraint A24
86      * @title number of registers
87      */
testVFE1()88     public void testVFE1() {
89         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_2", VerifyError.class);
90     }
91 
92 
93 
94     /**
95      * @constraint B1
96      * @title types of arguments - long, double
97      */
testVFE2()98     public void testVFE2() {
99         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_3", VerifyError.class);
100     }
101 
102     /**
103      * @constraint B1
104      * @title types of arguments - int, int
105      */
testVFE3()106     public void testVFE3() {
107         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_4", VerifyError.class);
108     }
109 
110     /**
111      * @constraint B1
112      * @title types of arguments - float, int
113      */
testVFE4()114     public void testVFE4() {
115         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_5", VerifyError.class);
116     }
117 
118     /**
119      * @constraint B1
120      * @title types of arguments - reference, int
121      */
testVFE5()122     public void testVFE5() {
123         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_6", VerifyError.class);
124     }
125 
126     /**
127      * @constraint B1
128      * @title Types of arguments - double, int. The verifier checks that longs
129      * and doubles are not used interchangeably.
130      */
testVFE6()131     public void testVFE6() {
132         load("dot.junit.opcodes.shl_long_2addr.d.T_shl_long_2addr_7", VerifyError.class);
133     }
134 
135 }
136