Merge branch 'master' into lttng_2_0_control_dev
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / event / CTFEventFieldTest.java
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 }
This page took 0.035673 seconds and 6 git commands to generate.