Merge commit 'e1de8d2d152352eded708615a967021db7800709' into lttng-luna
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / ctfadaptor / CtfTmfEventFieldTest.java
index c0dc0189f01fd662407f3104d829bb188f024f9a..d3cdf07b6c4c99b75b954cb59d15f32688589ae7 100644 (file)
@@ -14,6 +14,7 @@
 package org.eclipse.linuxtools.tmf.core.tests.ctfadaptor;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertArrayEquals;
 
 import java.nio.ByteOrder;
 
@@ -21,6 +22,7 @@ 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.Definition;
 import org.eclipse.linuxtools.ctf.core.event.types.Encoding;
+import org.eclipse.linuxtools.ctf.core.event.types.EnumDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.FloatDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.FloatDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.IntegerDeclaration;
@@ -28,6 +30,7 @@ import org.eclipse.linuxtools.ctf.core.event.types.SequenceDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.StringDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.StructDeclaration;
 import org.eclipse.linuxtools.ctf.core.event.types.StructDefinition;
+import org.eclipse.linuxtools.ctf.core.event.types.VariantDeclaration;
 import org.eclipse.linuxtools.tmf.core.ctfadaptor.CtfTmfEventField;
 import org.junit.Before;
 import org.junit.Test;
@@ -39,7 +42,6 @@ import org.junit.Test;
  * @author ematkho
  * @version 1.0
  */
-@SuppressWarnings("nls")
 public class CtfTmfEventFieldTest {
 
     private static final String ROOT = "root";
@@ -51,6 +53,8 @@ public class CtfTmfEventFieldTest {
     private static final String INT = "int";
     private static final String NAME = "test";
     private static final String STRUCT = "struct";
+    private static final String VARIANT = "variant";
+    private static final String ENUM = "enum";
 
     private StructDefinition fixture;
 
@@ -68,15 +72,24 @@ public class CtfTmfEventFieldTest {
         ArrayDeclaration arrDec = new ArrayDeclaration(2, intDec);
         SequenceDeclaration seqDec = new SequenceDeclaration(LEN, intDec);
         StructDeclaration structDec = new StructDeclaration(32);
+        EnumDeclaration enumDec = new EnumDeclaration(intDec);
+        VariantDeclaration varDec = new VariantDeclaration();
         sDec.addField(INT, intDec);
         sDec.addField(LEN, intDec);
         sDec.addField(FLOAT, flDec);
         sDec.addField(STR, strDec);
         sDec.addField(ARRAY, arrDec);
         sDec.addField(SEQ, seqDec);
-        structDec.addField(STR,strDec);
+        structDec.addField(STR, strDec);
         structDec.addField(INT, intDec);
         sDec.addField(STRUCT, structDec);
+        enumDec.add(0, 1, LEN);
+        enumDec.add(2, 3, FLOAT);
+        sDec.addField(ENUM, enumDec);
+        varDec.addField(LEN, intDec);
+        varDec.addField(FLOAT, flDec);
+        varDec.setTag(ENUM);
+        sDec.addField(VARIANT, varDec);
         fixture = sDec.createDefinition(fixture, ROOT);
         int capacity = 2048;
         java.nio.ByteBuffer bb = java.nio.ByteBuffer.allocateDirect(capacity);
@@ -87,6 +100,8 @@ public class CtfTmfEventFieldTest {
         bb.put((byte) 0);
         bb.position(40);
         bb.put((byte) 0);
+        bb.position(60);
+        bb.put((byte) 0);
         bb.position(0);
         fixture.read(new BitBuffer(bb));
     }
@@ -108,7 +123,7 @@ public class CtfTmfEventFieldTest {
     public void testParseField_array() {
         Definition fieldDef = fixture.lookupArray(ARRAY);
         CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
-        assertEquals("test=[2, 2]", result.toString());
+        assertEquals("test=[02, 02]", result.toString());
     }
 
     /**
@@ -128,7 +143,7 @@ public class CtfTmfEventFieldTest {
     public void testParseField_sequence() {
         Definition fieldDef = fixture.lookupDefinition(SEQ);
         CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
-        assertEquals("test=[2, 2]", result.toString());
+        assertEquals("test=[02, 02]", result.toString());
     }
 
     /**
@@ -138,7 +153,9 @@ public class CtfTmfEventFieldTest {
     public void testParseField_sequence_value() {
         Definition fieldDef = fixture.lookupDefinition(SEQ);
         CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
-        assertEquals("[2, 2]", result.getValue().toString());
+        long[] values = (long[]) result.getValue();
+        long[] expected = new long[] { 2, 2 };
+        assertArrayEquals(expected, values);
     }
 
     /**
@@ -160,4 +177,24 @@ public class CtfTmfEventFieldTest {
         CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
         assertEquals("test=[str=\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2, int=02]", result.toString());
     }
+
+    /**
+     * Run the CtfTmfEventField parseField(Definition,String) method test.
+     */
+    @Test
+    public void testParseField_enum() {
+        Definition fieldDef = fixture.lookupDefinition(ENUM);
+        CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
+        assertEquals("test=float", result.toString());
+    }
+
+    /**
+     * Run the CtfTmfEventField parseField(Definition,String) method test.
+     */
+    @Test
+    public void testParseField_variant() {
+        Definition fieldDef = fixture.lookupDefinition(VARIANT);
+        CtfTmfEventField result = CtfTmfEventField.parseField(fieldDef, NAME);
+        assertEquals("test=float=9.551467814359616E-38", result.toString());
+    }
 }
This page took 0.025941 seconds and 5 git commands to generate.