ctf: Make events immutable
[deliverable/tracecompass.git] / org.eclipse.linuxtools.ctf.core.tests / src / org / eclipse / linuxtools / ctf / core / tests / event / CTFEventFieldTest.java
index 379dee49546b472e51521a3ed6c367d7c1a0483c..2e7224009c0ecd28837b985baa93841dbfa3293d 100644 (file)
@@ -17,15 +17,13 @@ import static org.junit.Assert.assertNotNull;
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.linuxtools.ctf.core.event.io.BitBuffer;
-import org.eclipse.linuxtools.ctf.core.event.types.ArrayDeclaration;
-import org.eclipse.linuxtools.ctf.core.event.types.ArrayDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.Definition;
 import org.eclipse.linuxtools.ctf.core.event.types.Encoding;
 import org.eclipse.linuxtools.ctf.core.event.types.IntegerDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.IntegerDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.SequenceDeclaration;
-import org.eclipse.linuxtools.ctf.core.event.types.SequenceDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.StringDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.StringDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.StructDeclaration;
@@ -33,6 +31,8 @@ import org.eclipse.linuxtools.ctf.core.event.types.StructDefinition;
 import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableList;
+
 /**
  * The class <code>CTFEventFieldTest</code> contains tests for the class
  * <code>{@link CTFEventField}</code>.
@@ -43,44 +43,63 @@ import org.junit.Test;
 @SuppressWarnings("javadoc")
 public class CTFEventFieldTest {
 
-    private static final String fieldName = "id";
+    @NonNull private static final String fieldName = "id";
 
     /**
      * Run the CTFEventField parseField(Definition,String) method test.
+     *
      * @throws CTFReaderException
      */
     @Test
     public void testParseField_complex() throws CTFReaderException {
         int len = 32;
-        IntegerDeclaration id = new IntegerDeclaration(len, false, len,
-                ByteOrder.LITTLE_ENDIAN, Encoding.ASCII, null, 32);
+        IntegerDeclaration id = IntegerDeclaration.createDeclaration(
+                len,
+                false,
+                len,
+                ByteOrder.LITTLE_ENDIAN,
+                Encoding.ASCII,
+                "",
+                len);
         String lengthName = "LengthName";
         StructDeclaration structDec = new StructDeclaration(0);
         structDec.addField(lengthName, id);
-        StructDefinition structDef = new StructDefinition(structDec, null,
-                lengthName);
+        StructDefinition structDef = new StructDefinition(
+                structDec,
+                null,
+                lengthName,
+                ImmutableList.of(lengthName),
+                new Definition[] {
+                        new IntegerDefinition(
+                                id,
+                                null,
+                                lengthName,
+                                32)
+                });
 
-        structDef.lookupInteger(lengthName).setValue(32);
         SequenceDeclaration sd = new SequenceDeclaration(lengthName, id);
-        Definition fieldDef = new SequenceDefinition(sd, structDef, "TestX");
         ByteBuffer byb = ByteBuffer.allocate(1024);
         for (int i = 0; i < 1024; i++) {
             byb.put((byte) i);
         }
         BitBuffer bb = new BitBuffer(byb);
-        fieldDef.read(bb);
+        Definition fieldDef = sd.createDefinition(structDef, "fff-fffield", bb);
 
         assertNotNull(fieldDef);
     }
 
     /**
      * Run the CTFEventField parseField(Definition,String) method test.
+     *
      * @throws CTFReaderException
      */
     @Test
-    public void testParseField_simple() {
+    public void testParseField_simple() throws CTFReaderException {
         final StringDeclaration elemType = new StringDeclaration();
-        Definition fieldDef = elemType.createDefinition(null, fieldName);
+        byte[] bytes = { 'T', 'e', 's', 't', '\0' };
+        ByteBuffer bb = ByteBuffer.wrap(bytes);
+
+        Definition fieldDef = elemType.createDefinition(null, fieldName, new BitBuffer(bb));
 
         assertNotNull(fieldDef);
     }
@@ -91,9 +110,8 @@ public class CTFEventFieldTest {
     @Test
     public void testParseField_simple2() {
         IntegerDefinition fieldDef = new IntegerDefinition(
-                new IntegerDeclaration(1, false, 1, ByteOrder.BIG_ENDIAN,
-                        Encoding.ASCII, null, 8), null, fieldName);
-        fieldDef.setValue(1L);
+                IntegerDeclaration.createDeclaration(1, false, 1, ByteOrder.BIG_ENDIAN,
+                        Encoding.ASCII, "", 8), null, fieldName, 1L);
 
         assertNotNull(fieldDef);
     }
@@ -104,61 +122,11 @@ public class CTFEventFieldTest {
     @Test
     public void testParseField_simple3() {
         StringDefinition fieldDef = new StringDefinition(
-                new StringDeclaration(), null, fieldName);
-        fieldDef.setValue("Hello World");
+                new StringDeclaration(), null, fieldName, "Hello World");
 
         String other = "\"Hello World\"";
         assertNotNull(fieldDef);
         assertEquals(fieldDef.toString(), other);
     }
 
-    /**
-     * Run the CTFEventField parseField(Definition,String) method test.
-     */
-    @Test
-    public void testParseField_manual() {
-        Definition fieldDef = new ArrayDefinition(new ArrayDeclaration(20,
-                new IntegerDeclaration(8, false, 8, null, Encoding.UTF8, null, 8)),
-                null, fieldName);
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[0]).setValue('H');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[1]).setValue('e');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[2]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[3]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[4]).setValue('o');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[5]).setValue(' ');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[6]).setValue('W');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[7]).setValue('o');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[8]).setValue('r');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[9]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[10]).setValue('d');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[11]).setValue(0);
-
-        assertNotNull(fieldDef);
-    }
-
-    /**
-     * Run the CTFEventField parseField(Definition,String) method test.
-     */
-    @Test
-    public void testParseField_manual2() {
-        Definition fieldDef = new ArrayDefinition(new ArrayDeclaration(12,
-                new IntegerDeclaration(32, false, 32, null, null, null, 8)), null,
-                fieldName);
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[0]).setValue('H');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[1]).setValue('e');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[2]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[3]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[4]).setValue('o');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[5]).setValue(' ');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[6]).setValue('W');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[7]).setValue('o');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[8]).setValue('r');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[9]).setValue('l');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[10]).setValue('d');
-        ((IntegerDefinition) ((ArrayDefinition) fieldDef).getDefinitions()[11]).setValue(0);
-
-        assertNotNull(fieldDef);
-        String other = "[ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 0 ]";
-        assertEquals(other, fieldDef.toString());
-    }
 }
\ No newline at end of file
This page took 0.030329 seconds and 5 git commands to generate.