1 /*
2  * Copyright (C) 2008 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package dot.junit.opcodes.xor_long_2addr;
18 
19 import dot.junit.DxTestCase;
20 import dot.junit.DxUtil;
21 import dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_1;
22 import dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_2;
23 
24 public class Test_xor_long_2addr extends DxTestCase {
25     /**
26      * @title Arguments = 23423432423777l, 23423432423778l
27      */
testN1()28     public void testN1() {
29         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
30         assertEquals(3, t.run(23423432423777l, 23423432423778l));
31     }
32 
33     /**
34      * @title Arguments = 0xfffffff5, 0xfffffff1
35      */
testN2()36     public void testN2() {
37         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
38         assertEquals(4, t.run(0xfffffff5, 0xfffffff1));
39     }
40 
41     /**
42      * @title Arguments = 0xABCDEFAB & -1
43      */
testN3()44     public void testN3() {
45         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
46         assertEquals(0x54321054, t.run(0xABCDEFAB, -1l));
47     }
48 
49 
50     /**
51      * @title Arguments = 0 & -1
52      */
testB1()53     public void testB1() {
54         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
55         assertEquals(-1l, t.run(0l, -1l));
56     }
57 
58     /**
59      * @title Arguments = Long.MAX_VALUE & Long.MIN_VALUE
60      */
testB2()61     public void testB2() {
62         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
63         assertEquals(0xffffffff, t.run(Long.MAX_VALUE, Long.MIN_VALUE));
64     }
65 
66     /**
67      * @title Arguments = Long.MAX_VALUE & Long.MAX_VALUE
68      */
testB3()69     public void testB3() {
70         T_xor_long_2addr_1 t = new T_xor_long_2addr_1();
71         assertEquals(0l, t.run(Long.MAX_VALUE, Long.MAX_VALUE));
72     }
73 
74     /**
75      * @constraint A24
76      * @title  (number of registers).
77      */
testVFE1()78     public void testVFE1() {
79         load("dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_6", VerifyError.class);
80     }
81 
82 
83 
84 
85     /**
86      * @constraint B1
87      * @title types of arguments - int, long
88      */
testVFE2()89     public void testVFE2() {
90         load("dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_3", VerifyError.class);
91     }
92 
93     /**
94      *
95      * @constraint B1
96      * @title types of arguments - float, long
97      */
testVFE3()98     public void testVFE3() {
99         load("dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_4", VerifyError.class);
100     }
101 
102     /**
103      *
104      * @constraint B1
105      * @title types of arguments - reference, long
106      */
testVFE4()107     public void testVFE4() {
108         load("dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_5", VerifyError.class);
109     }
110 
111     /**
112      * @constraint B1
113      * @title Types of arguments - double, long. The verifier checks that longs
114      * and doubles are not used interchangeably.
115      */
testVFE5()116     public void testVFE5() {
117         load("dot.junit.opcodes.xor_long_2addr.d.T_xor_long_2addr_2", VerifyError.class);
118     }
119 }
120