X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=org.eclipse.linuxtools.tmf.core.tests%2Fsrc%2Forg%2Feclipse%2Flinuxtools%2Ftmf%2Fcore%2Ftests%2Fctfadaptor%2FCtfTmfEventFieldTest.java;h=d3cdf07b6c4c99b75b954cb59d15f32688589ae7;hb=2175e89d4517f55f79810eae7b07cf1e37112fdd;hp=c0dc0189f01fd662407f3104d829bb188f024f9a;hpb=61759503a35af46ddb0f8d54a351c620e9aeb605;p=deliverable%2Ftracecompass.git diff --git a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfEventFieldTest.java b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfEventFieldTest.java index c0dc0189f0..d3cdf07b6c 100644 --- a/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfEventFieldTest.java +++ b/org.eclipse.linuxtools.tmf.core.tests/src/org/eclipse/linuxtools/tmf/core/tests/ctfadaptor/CtfTmfEventFieldTest.java @@ -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=, 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()); + } }