1 package serp.bytecode;
2
3 import junit.framework.*;
4 import junit.textui.*;
5
6
7
8
9
10
11 public class TestConvertInstruction extends TestCase {
12 private Code _code = new Code();
13
14 public TestConvertInstruction(String test) {
15 super(test);
16 }
17
18
19
20
21 public void testOpcodeMorph() {
22 ConvertInstruction ins = _code.convert();
23 assertEquals(Constants.NOP, ins.getOpcode());
24
25 ins.setFromType(int.class);
26 assertEquals(Constants.NOP, ins.getOpcode());
27 assertEquals(int.class, ins.getFromType());
28 assertNull(ins.getType());
29
30 ins.setType(int.class);
31 assertEquals(Constants.NOP, ins.getOpcode());
32 assertEquals(int.class, ins.getFromType());
33 assertEquals(int.class, ins.getType());
34
35 ins.setType(long.class);
36 assertEquals(Constants.I2L, ins.getOpcode());
37 assertEquals(int.class, ins.getFromType());
38 assertEquals(long.class, ins.getType());
39
40 ins.setType(float.class);
41 assertEquals(Constants.I2F, ins.getOpcode());
42 assertEquals(int.class, ins.getFromType());
43 assertEquals(float.class, ins.getType());
44
45 ins.setType(double.class);
46 assertEquals(Constants.I2D, ins.getOpcode());
47 assertEquals(int.class, ins.getFromType());
48 assertEquals(double.class, ins.getType());
49
50 ins.setFromType(long.class);
51 assertEquals(Constants.L2D, ins.getOpcode());
52 assertEquals(long.class, ins.getFromType());
53 assertEquals(double.class, ins.getType());
54
55 ins.setType(long.class);
56 assertEquals(Constants.NOP, ins.getOpcode());
57 assertEquals(long.class, ins.getFromType());
58 assertEquals(long.class, ins.getType());
59
60 ins.setType(int.class);
61 assertEquals(Constants.L2I, ins.getOpcode());
62 assertEquals(long.class, ins.getFromType());
63 assertEquals(int.class, ins.getType());
64
65 ins.setType(String.class);
66 assertEquals(Constants.L2I, ins.getOpcode());
67
68 ins.setType((Class) null);
69 assertEquals(Constants.NOP, ins.getOpcode());
70
71 ins.setType(float.class);
72 assertEquals(Constants.L2F, ins.getOpcode());
73 }
74
75 public static Test suite() {
76 return new TestSuite(TestConvertInstruction.class);
77 }
78
79 public static void main(String[] args) {
80 TestRunner.run(suite());
81 }
82 }