1 /*******************************************************************************
2 * Copyright (c) 2013 Ericsson
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
9 * Matthew Khouzam - Initial API and implementation
10 *******************************************************************************/
12 package org
.eclipse
.linuxtools
.ctf
.core
.tests
.event
;
14 import static org
.junit
.Assert
.assertEquals
;
15 import static org
.junit
.Assert
.assertNotNull
;
17 import java
.nio
.ByteBuffer
;
18 import java
.nio
.ByteOrder
;
20 import org
.eclipse
.linuxtools
.ctf
.core
.event
.io
.BitBuffer
;
21 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.ArrayDeclaration
;
22 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.ArrayDefinition
;
23 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.Definition
;
24 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.Encoding
;
25 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.IntegerDeclaration
;
26 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.IntegerDefinition
;
27 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.SequenceDeclaration
;
28 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.SequenceDefinition
;
29 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.StringDeclaration
;
30 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.StringDefinition
;
31 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.StructDeclaration
;
32 import org
.eclipse
.linuxtools
.ctf
.core
.event
.types
.StructDefinition
;
33 import org
.eclipse
.linuxtools
.ctf
.core
.trace
.CTFReaderException
;
34 import org
.junit
.After
;
35 import org
.junit
.Before
;
36 import org
.junit
.Test
;
39 * The class <code>CTFEventFieldTest</code> contains tests for the class
40 * <code>{@link CTFEventField}</code>.
43 * @version $Revision: 1.0 $
45 @SuppressWarnings("javadoc")
46 public class CTFEventFieldTest
{
48 private static final String fieldName
= "id"; //$NON-NLS-1$
52 * Perform pre-test initialization.
56 // add additional set up code here
60 * Perform post-test clean-up.
63 public void tearDown() {
64 // Add additional tear down code here
71 * the command line arguments
73 public static void main(String
[] args
) {
74 new org
.junit
.runner
.JUnitCore().run(CTFEventFieldTest
.class);
78 * Run the CTFEventField parseField(Definition,String) method test.
79 * @throws CTFReaderException
82 public void testParseField_complex() throws CTFReaderException
{
84 IntegerDeclaration id
= new IntegerDeclaration(len
, false, len
,
85 ByteOrder
.LITTLE_ENDIAN
, Encoding
.ASCII
, null, 32);
86 String lengthName
= "LengthName"; //$NON-NLS-1$
87 StructDeclaration structDec
= new StructDeclaration(0);
88 structDec
.addField(lengthName
, id
);
89 StructDefinition structDef
= new StructDefinition(structDec
, null,
92 structDef
.lookupInteger(lengthName
).setValue(32);
93 SequenceDeclaration sd
= new SequenceDeclaration(lengthName
, id
);
94 Definition fieldDef
= new SequenceDefinition(sd
, structDef
, "TestX"); //$NON-NLS-1$
95 ByteBuffer byb
= ByteBuffer
.allocate(1024);
96 for (int i
= 0; i
< 1024; i
++) {
99 BitBuffer bb
= new BitBuffer(byb
);
102 assertNotNull(fieldDef
);
106 * Run the CTFEventField parseField(Definition,String) method test.
107 * @throws CTFReaderException
110 public void testParseField_simple() {
111 final StringDeclaration elemType
= new StringDeclaration();
112 Definition fieldDef
= elemType
.createDefinition(null, fieldName
);
114 assertNotNull(fieldDef
);
118 * Run the CTFEventField parseField(Definition,String) method test.
121 public void testParseField_simple2() {
122 IntegerDefinition fieldDef
= new IntegerDefinition(
123 new IntegerDeclaration(1, true, 1, ByteOrder
.BIG_ENDIAN
,
124 Encoding
.ASCII
, null, 8), null, fieldName
);
125 fieldDef
.setValue(1L);
127 assertNotNull(fieldDef
);
134 public void testParseField_simple3() {
135 StringDefinition fieldDef
= new StringDefinition(
136 new StringDeclaration(), null, fieldName
);
137 fieldDef
.setString(new StringBuilder("Hello World")); //$NON-NLS-1$
139 String other
= "\"Hello World\""; //$NON-NLS-1$
140 assertNotNull(fieldDef
);
141 assertEquals(fieldDef
.toString(), other
);
145 * Run the CTFEventField parseField(Definition,String) method test.
148 public void testParseField_manual() {
149 Definition fieldDef
= new ArrayDefinition(new ArrayDeclaration(20,
150 new IntegerDeclaration(8, false, 8, null, Encoding
.UTF8
, null, 8)),
152 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[0]).setValue('H');
153 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[1]).setValue('e');
154 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[2]).setValue('l');
155 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[3]).setValue('l');
156 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[4]).setValue('o');
157 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[5]).setValue(' ');
158 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[6]).setValue('W');
159 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[7]).setValue('o');
160 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[8]).setValue('r');
161 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[9]).setValue('l');
162 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[10]).setValue('d');
163 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[11]).setValue(0);
165 assertNotNull(fieldDef
);
169 * Run the CTFEventField parseField(Definition,String) method test.
172 public void testParseField_manual2() {
173 Definition fieldDef
= new ArrayDefinition(new ArrayDeclaration(12,
174 new IntegerDeclaration(32, false, 32, null, null, null, 8)), null,
176 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[0]).setValue('H');
177 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[1]).setValue('e');
178 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[2]).setValue('l');
179 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[3]).setValue('l');
180 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[4]).setValue('o');
181 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[5]).setValue(' ');
182 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[6]).setValue('W');
183 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[7]).setValue('o');
184 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[8]).setValue('r');
185 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[9]).setValue('l');
186 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[10]).setValue('d');
187 ((IntegerDefinition
) ((ArrayDefinition
) fieldDef
).getDefinitions()[11]).setValue(0);
189 assertNotNull(fieldDef
);
190 String other
= "[ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 0 ]"; //$NON-NLS-1$
191 assertEquals(other
, fieldDef
.toString());