use of org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.compile.TmfXmlStateValueCu in project tracecompass by tracecompass.
the class TmfXmlStateAttributeAndLocationCuTest method testValidStateAttributeCompilation.
/**
* Test the compilation of a valid state attribute strings, except locations
*
* @throws SAXException
* Exception thrown by parser
* @throws IOException
* Exception thrown by parser
* @throws ParserConfigurationException
* Exception thrown by parser
*/
@Test
public void testValidStateAttributeCompilation() throws SAXException, IOException, ParserConfigurationException {
String[] validStrings = { "<stateAttribute type=\"null\" />", "<stateAttribute type=\"constant\" value=\"42\" />", "<stateAttribute type=\"eventField\" value=\"myfield\" />", "<stateAttribute type=\"eventName\" />", "<stateAttribute type=\"eventName\" value=\"ignored\" />", "<stateAttribute type=\"query\" ><stateAttribute type=\"constant\" value=\"queryPath\"/></stateAttribute>", "<stateAttribute type=\"self\" />", "<stateAttribute type=\"pool\" />" };
DataDrivenValue[] generated = { TmfXmlTestUtils.NULL_VALUE, new DataDrivenValueConstant(null, ITmfStateValue.Type.NULL, "42"), new DataDrivenValueEventField(null, ITmfStateValue.Type.NULL, "myfield"), new DataDrivenValueEventName(null), new DataDrivenValueEventName(null), new DataDrivenValueQuery(null, ITmfStateValue.Type.NULL, new DataDrivenStateSystemPath(ImmutableList.of(new DataDrivenValueConstant(null, ITmfStateValue.Type.NULL, "queryPath")), IBaseQuarkProvider.IDENTITY_BASE_QUARK)), new DataDrivenValueSelf(ITmfStateValue.Type.NULL), DataDrivenValuePool.getInstance() };
for (int i = 0; i < validStrings.length; i++) {
String validString = validStrings[i];
DataDrivenValue runtimeObj = generated[i];
Element xmlElement = TmfXmlTestUtils.getXmlElement(TmfXmlStrings.STATE_ATTRIBUTE, validString);
assertNotNull(xmlElement);
List<@NonNull TmfXmlStateValueCu> compileAttribute = TmfXmlStateValueCu.compileAttribute(ANALYSIS_DATA, xmlElement);
assertNotNull(validString, compileAttribute);
assertEquals("Number of attributes", 1, compileAttribute.size());
TmfXmlStateValueCu value = compileAttribute.get(0);
assertEquals("Expected attribute", runtimeObj, value.generate());
}
}
use of org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.compile.TmfXmlStateValueCu in project tracecompass by tracecompass.
the class TmfXmlStateAttributeAndLocationCuTest method testValidLocationCompilation.
/**
* Test the compilation of a valid state location strings, and states
* attributes that use it
*
* @throws SAXException
* Exception thrown by parser
* @throws IOException
* Exception thrown by parser
* @throws ParserConfigurationException
* Exception thrown by parser
*/
@Test
public void testValidLocationCompilation() throws SAXException, IOException, ParserConfigurationException {
String locName = "loc";
String location = "<location id=\"" + locName + "\">" + "<stateAttribute type=\"constant\" value=\"abc\" />" + "<stateAttribute type=\"eventField\" value=\"myField\" />" + "</location>";
AnalysisCompilationData data = new AnalysisCompilationData();
Element xmlElement = TmfXmlTestUtils.getXmlElement(TmfXmlStrings.LOCATION, location);
assertNotNull(xmlElement);
TmfXmlLocationCu locationCu = TmfXmlLocationCu.compile(data, xmlElement);
assertNotNull("location", locationCu);
// Add the location to the compilation data
data.addLocation(locName, locationCu);
// Compile a location state attribute
String attributeXml = "<stateAttribute type=\"location\" value=\"" + locName + "\" />";
xmlElement = TmfXmlTestUtils.getXmlElement(TmfXmlStrings.STATE_ATTRIBUTE, attributeXml);
assertNotNull(xmlElement);
List<@NonNull TmfXmlStateValueCu> attribute = TmfXmlStateValueCu.compileAttribute(data, xmlElement);
assertNotNull("Location attribute compilation", attribute);
assertEquals("Attribute count", 2, attribute.size());
List<DataDrivenValue> expected = ImmutableList.of(new DataDrivenValueConstant(null, ITmfStateValue.Type.NULL, "abc"), new DataDrivenValueEventField(null, ITmfStateValue.Type.NULL, "myField"));
List<DataDrivenValue> actual = attribute.stream().map(a -> a.generate()).collect(Collectors.toList());
assertEquals("Location generated", expected, actual);
}
use of org.eclipse.tracecompass.internal.tmf.analysis.xml.core.fsm.compile.TmfXmlStateValueCu in project tracecompass by tracecompass.
the class TmfXmlStateValueCuTest method testStateValueCompilation.
/**
* Test the compilation of a state value string
*
* @throws SAXException
* Exception thrown by parser
* @throws IOException
* Exception thrown by parser
* @throws ParserConfigurationException
* Exception thrown by parser
*/
@Test
public void testStateValueCompilation() throws SAXException, IOException, ParserConfigurationException {
Element xmlElement = TmfXmlTestUtils.getXmlElement(TmfXmlStrings.STATE_VALUE, fXmlString);
assertNotNull(xmlElement);
TmfXmlStateValueCu compiledValue = TmfXmlStateValueCu.compileValue(ANALYSIS_DATA, xmlElement);
if (fCompiles == null) {
assertNull(compiledValue);
return;
}
assertNotNull(compiledValue);
assertEquals(fTestName, fCompiles, compiledValue.generate());
}
Aggregations