Commit | Line | Data |
---|---|---|
866e5b51 FC |
1 | package org.eclipse.linuxtools.ctf.core.tests.event; |
2 | ||
3 | import static org.junit.Assert.assertEquals; | |
4 | import static org.junit.Assert.assertNotNull; | |
5 | ||
6 | import java.nio.ByteBuffer; | |
7 | import java.nio.ByteOrder; | |
8 | ||
9 | import org.eclipse.linuxtools.ctf.core.event.io.BitBuffer; | |
10 | import org.eclipse.linuxtools.ctf.core.event.types.ArrayDeclaration; | |
11 | import org.eclipse.linuxtools.ctf.core.event.types.ArrayDefinition; | |
12 | import org.eclipse.linuxtools.ctf.core.event.types.Definition; | |
13 | import org.eclipse.linuxtools.ctf.core.event.types.Encoding; | |
14 | import org.eclipse.linuxtools.ctf.core.event.types.IntegerDeclaration; | |
15 | import org.eclipse.linuxtools.ctf.core.event.types.IntegerDefinition; | |
16 | import org.eclipse.linuxtools.ctf.core.event.types.SequenceDeclaration; | |
17 | import org.eclipse.linuxtools.ctf.core.event.types.SequenceDefinition; | |
18 | import org.eclipse.linuxtools.ctf.core.event.types.StringDeclaration; | |
19 | import org.eclipse.linuxtools.ctf.core.event.types.StringDefinition; | |
20 | import org.eclipse.linuxtools.ctf.core.event.types.StructDeclaration; | |
21 | import org.eclipse.linuxtools.ctf.core.event.types.StructDefinition; | |
22 | import org.junit.After; | |
23 | import org.junit.Before; | |
24 | import org.junit.Test; | |
25 | ||
26 | /** | |
27 | * The class <code>CTFEventFieldTest</code> contains tests for the class | |
28 | * <code>{@link CTFEventField}</code>. | |
29 | * | |
30 | * @author ematkho | |
31 | * @version $Revision: 1.0 $ | |
32 | * @param <CTFIntegerArrayField> | |
33 | */ | |
34 | public class CTFEventFieldTest { | |
35 | ||
36 | private static final String fieldName = "id"; //$NON-NLS-1$ | |
37 | ||
38 | ||
39 | /** | |
40 | * Perform pre-test initialization. | |
41 | */ | |
42 | @Before | |
43 | public void setUp() { | |
44 | // add additional set up code here | |
45 | } | |
46 | ||
47 | /** | |
48 | * Perform post-test clean-up. | |
49 | */ | |
50 | @After | |
51 | public void tearDown() { | |
52 | // Add additional tear down code here | |
53 | } | |
54 | ||
55 | /** | |
56 | * Launch the test. | |
57 | * | |
58 | * @param args | |
59 | * the command line arguments | |
60 | */ | |
61 | public static void main(String[] args) { | |
62 | new org.junit.runner.JUnitCore().run(CTFEventFieldTest.class); | |
63 | } | |
64 | ||
65 | /** | |
66 | * Run the CTFEventField parseField(Definition,String) method test. | |
67 | */ | |
68 | @Test | |
69 | public void testParseField_complex() { | |
70 | int len = 32; | |
71 | IntegerDeclaration id = new IntegerDeclaration(len, false, len, | |
72 | ByteOrder.LITTLE_ENDIAN, Encoding.ASCII); | |
73 | String lengthName = "LengthName"; //$NON-NLS-1$ | |
74 | StructDeclaration structDec = new StructDeclaration(0); | |
75 | structDec.addField(lengthName, id); | |
76 | StructDefinition structDef = new StructDefinition(structDec, null, | |
77 | lengthName); | |
78 | ||
79 | structDef.lookupInteger(lengthName).setValue(32); | |
80 | SequenceDeclaration sd = new SequenceDeclaration(lengthName, id); | |
81 | Definition fieldDef = new SequenceDefinition(sd, structDef, "TestX"); //$NON-NLS-1$ | |
82 | ByteBuffer byb = ByteBuffer.allocate(1024); | |
83 | for (int i = 0; i < 1024; i++) { | |
84 | byb.put((byte) i); | |
85 | } | |
86 | BitBuffer bb = new BitBuffer(byb); | |
87 | fieldDef.read(bb); | |
88 | ||
89 | assertNotNull(fieldDef); | |
90 | } | |
91 | ||
92 | /** | |
93 | * Run the CTFEventField parseField(Definition,String) method test. | |
94 | */ | |
95 | @Test | |
96 | public void testParseField_simple() { | |
97 | Definition fieldDef = new SequenceDefinition(new SequenceDeclaration( | |
98 | "", new StringDeclaration()), null, fieldName); //$NON-NLS-1$ | |
99 | ||
100 | assertNotNull(fieldDef); | |
101 | } | |
102 | ||
103 | /** | |
104 | * Run the CTFEventField parseField(Definition,String) method test. | |
105 | */ | |
106 | @Test | |
107 | public void testParseField_simple2() { | |
108 | IntegerDefinition fieldDef = new IntegerDefinition( | |
109 | new IntegerDeclaration(1, true, 1, ByteOrder.BIG_ENDIAN, | |
110 | Encoding.ASCII), null, fieldName); | |
111 | fieldDef.setValue(1L); | |
112 | ||
113 | assertNotNull(fieldDef); | |
114 | } | |
115 | ||
116 | /** | |
117 | * | |
118 | */ | |
119 | @Test | |
120 | public void testParseField_simple3() { | |
121 | StringDefinition fieldDef = new StringDefinition( | |
122 | new StringDeclaration(), null, fieldName); | |
123 | fieldDef.setString(new StringBuilder("Hello World")); //$NON-NLS-1$ | |
124 | ||
125 | String other = fieldName + "=Hello World"; //$NON-NLS-1$ | |
126 | assertNotNull(fieldDef); | |
127 | assertEquals(fieldDef.toString(), other); | |
128 | } | |
129 | ||
130 | /** | |
131 | * Run the CTFEventField parseField(Definition,String) method test. | |
132 | */ | |
133 | @Test | |
134 | public void testParseField_manual() { | |
135 | Definition fieldDef = new ArrayDefinition(new ArrayDeclaration(20, | |
136 | new IntegerDeclaration(8, false, 8, null, Encoding.UTF8)), | |
137 | null, fieldName); | |
138 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[0]).setValue('H'); | |
139 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[1]).setValue('e'); | |
140 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[2]).setValue('l'); | |
141 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[3]).setValue('l'); | |
142 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[4]).setValue('o'); | |
143 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[5]).setValue(' '); | |
144 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[6]).setValue('W'); | |
145 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[7]).setValue('o'); | |
146 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[8]).setValue('r'); | |
147 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[9]).setValue('l'); | |
148 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[10]).setValue('d'); | |
149 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[11]).setValue(0); | |
150 | ||
151 | assertNotNull(fieldDef); | |
152 | } | |
153 | ||
154 | /** | |
155 | * Run the CTFEventField parseField(Definition,String) method test. | |
156 | */ | |
157 | @Test | |
158 | public void testParseField_manual2() { | |
159 | Definition fieldDef = new ArrayDefinition(new ArrayDeclaration(12, | |
160 | new IntegerDeclaration(32, false, 32, null, null)), null, | |
161 | fieldName); | |
162 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[0]).setValue('H'); | |
163 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[1]).setValue('e'); | |
164 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[2]).setValue('l'); | |
165 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[3]).setValue('l'); | |
166 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[4]).setValue('o'); | |
167 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[5]).setValue(' '); | |
168 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[6]).setValue('W'); | |
169 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[7]).setValue('o'); | |
170 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[8]).setValue('r'); | |
171 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[9]).setValue('l'); | |
172 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[10]).setValue('d'); | |
173 | ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[11]).setValue(0); | |
174 | ||
175 | assertNotNull(fieldDef); | |
176 | String other = fieldName | |
177 | + "={ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 0}"; //$NON-NLS-1$ | |
178 | assertEquals(other, fieldDef.toString()); | |
179 | } | |
180 | } |