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.opc_goto;
18 
19 import dot.junit.DxTestCase;
20 import dot.junit.DxUtil;
21 import dot.junit.opcodes.opc_goto.d.T_opc_goto_1;
22 
23 public class Test_opc_goto extends DxTestCase {
24    /**
25     * @title forward and backward goto. This test also tests constraint C17 allowing to have
26      * backward goto as a last opcode in the method.
27     */
testN1()28    public void testN1() {
29        T_opc_goto_1 t = new T_opc_goto_1();
30        assertEquals(0, t.run(20));
31    }
32 
33    /**
34     * @constraint A6
35     * @title branch target is inside instruction
36     */
testVFE1()37    public void testVFE1() {
38         load("dot.junit.opcodes.opc_goto.d.T_opc_goto_2", VerifyError.class);
39    }
40 
41    /**
42     * @constraint A6
43     * @title branch target shall be inside the method
44     */
testVFE2()45    public void testVFE2() {
46         load("dot.junit.opcodes.opc_goto.d.T_opc_goto_3", VerifyError.class);
47    }
48 
49    /**
50     * @constraint n/a
51     * @title zero offset
52     */
testVFE3()53    public void testVFE3() {
54         load("dot.junit.opcodes.opc_goto.d.T_opc_goto_4", VerifyError.class);
55    }
56 
57 }
58