use of org.eclipse.tracecompass.statesystem.core.ITmfStateSystem in project tracecompass by tracecompass.
the class TmfStateValueTest method testStateValuePeek.
/**
* it tests that a state change on stack, with a peek() condition. This test
* verifies the value on the top of the stack and verifies that the peek
* operation do not remove the value on the top of the stack.
*
* @throws StateSystemDisposedException
* Exceptions thrown during state system verification
* @throws AttributeNotFoundException
* Exceptions thrown during state system verification
*/
@Test
public void testStateValuePeek() throws AttributeNotFoundException, StateSystemDisposedException {
DataDrivenAnalysisModule module = fModule;
assertNotNull(module);
ITmfStateSystem ss = module.getStateSystem();
assertNotNull(ss);
int quark = ss.getQuarkAbsolute("stack");
final int[] expectedStarts = { 1, 2, 5, 7, 10, 20 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueLong(1l), TmfStateValue.newValueLong(2l), TmfStateValue.newValueLong(5l), TmfStateValue.newValueLong(2l), TmfStateValue.newValueLong(10l) };
XmlUtilsTest.verifyStackStateIntervals("testStateValuePeek", ss, quark, expectedStarts, expectedValues);
}
use of org.eclipse.tracecompass.statesystem.core.ITmfStateSystem in project tracecompass by tracecompass.
the class TmfStateValueTest method testStateValueModify.
/**
* Test that a state change with no update causes the modification of the
* state value at the time of the event
*
* @throws StateSystemDisposedException
* Exceptions thrown during state system verification
* @throws AttributeNotFoundException
* Exceptions thrown during state system verification
*/
@Test
public void testStateValueModify() throws AttributeNotFoundException, StateSystemDisposedException {
DataDrivenAnalysisModule module = fModule;
assertNotNull(module);
ITmfStateSystem ss = module.getStateSystem();
assertNotNull(ss);
int quark = ss.getQuarkAbsolute("modify", "0");
final int[] expectedStarts = { 1, 3, 5, 7, 20 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueString("UNKNOWN"), TmfStateValue.newValueString("GOOD"), TmfStateValue.newValueString("UNKNOWN"), TmfStateValue.newValueString("BAD") };
XmlUtilsTest.verifyStateIntervals("testStateValueModify", ss, quark, expectedStarts, expectedValues);
}
use of org.eclipse.tracecompass.statesystem.core.ITmfStateSystem in project tracecompass by tracecompass.
the class TmfStateValueTest method testStateValueFuture.
/**
* Test that a future state value changes the state at the appropriate time
*
* @throws StateSystemDisposedException
* Exceptions thrown during state system verification
* @throws AttributeNotFoundException
* Exceptions thrown during state system verification
*/
@Test
public void testStateValueFuture() throws AttributeNotFoundException, StateSystemDisposedException {
DataDrivenAnalysisModule module = fModule;
assertNotNull(module);
ITmfStateSystem ss = module.getStateSystem();
assertNotNull(ss);
int quark = ss.getQuarkAbsolute("future");
final int[] expectedStarts = { 1, 3, 5, 7, 10, 12, 20 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueInt(100), TmfStateValue.newValueInt(101), TmfStateValue.newValueInt(100), TmfStateValue.newValueInt(101), TmfStateValue.newValueInt(100), TmfStateValue.newValueInt(101) };
XmlUtilsTest.verifyStateIntervals("future value modification", ss, quark, expectedStarts, expectedValues);
// Verify also future time as strings
quark = ss.getQuarkAbsolute("futureStr");
XmlUtilsTest.verifyStateIntervals("future time as string", ss, quark, expectedStarts, expectedValues);
// Test the future stack of CPU 0
quark = ss.getQuarkAbsolute("futureStack", "0", "1");
final int[] expected01Starts = { 1, 2, 11, 20 };
ITmfStateValue[] expected01Values = { TmfStateValue.nullValue(), TmfStateValue.newValueString("op1"), TmfStateValue.nullValue() };
XmlUtilsTest.verifyStateIntervals("future stack CPU 0, level 1", ss, quark, expected01Starts, expected01Values);
quark = ss.getQuarkAbsolute("futureStack", "0", "2");
final int[] expected02Starts = { 1, 6, 7, 20 };
ITmfStateValue[] expected02Values = { TmfStateValue.nullValue(), TmfStateValue.newValueString("op1"), TmfStateValue.nullValue() };
XmlUtilsTest.verifyStateIntervals("future stack CPU 0, level 2", ss, quark, expected02Starts, expected02Values);
// Test the future stack of CPU 1
quark = ss.getQuarkAbsolute("futureStack", "1", "1");
final int[] expected11Starts = { 1, 3, 8, 11, 16, 20 };
ITmfStateValue[] expected11Values = { TmfStateValue.nullValue(), TmfStateValue.newValueString("op1"), TmfStateValue.nullValue(), TmfStateValue.newValueString("op1"), TmfStateValue.nullValue() };
XmlUtilsTest.verifyStateIntervals("future stack CPU 1, level 1", ss, quark, expected11Starts, expected11Values);
}
use of org.eclipse.tracecompass.statesystem.core.ITmfStateSystem in project tracecompass by tracecompass.
the class ConsumingFsmTest method testConsumingFsm.
/**
* Test the consuming fsm counter
*
* @throws StateSystemDisposedException
* Exceptions thrown during state system verification
* @throws AttributeNotFoundException
* Exceptions thrown during state system verification
*/
@Test
public void testConsumingFsm() throws AttributeNotFoundException, StateSystemDisposedException {
XmlPatternAnalysis module = fModule;
assertNotNull(module);
ITmfStateSystem ss = module.getStateSystem(module.getId());
assertNotNull(ss);
int quark = ss.getQuarkAbsolute("consuming");
final int[] expectedStarts = { 1, 7, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.nullValue(), TmfStateValue.newValueLong(1l) };
XmlUtilsTest.verifyStateIntervals("testConsuming", ss, quark, expectedStarts, expectedValues);
}
use of org.eclipse.tracecompass.statesystem.core.ITmfStateSystem in project tracecompass by tracecompass.
the class TmfXmlConditionTest method testConditionsValidation.
/**
* Test basic conditions on a state provider analysis
*/
@Test
public void testConditionsValidation() {
ITmfTrace trace = XmlUtilsTest.initializeTrace(testTrace2);
DataDrivenAnalysisModule module = XmlUtilsTest.initializeModule(TmfXmlTestFiles.CONDITION_FILE);
try {
module.setTrace(trace);
module.schedule();
module.waitForCompletion();
ITmfStateSystem ss = module.getStateSystem();
assertNotNull(ss);
List<Integer> quarks = ss.getQuarks("*");
assertEquals(5, quarks.size());
for (Integer quark : quarks) {
String name = ss.getAttributeName(quark);
switch(name) {
case "test":
{
final int[] expectedStarts = { 1, 5, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueLong(1), TmfStateValue.newValueLong(0) };
XmlUtilsTest.verifyStateIntervals("test", ss, quark, expectedStarts, expectedValues);
}
break;
case "test1":
{
final int[] expectedStarts = { 1, 3, 7, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.nullValue(), TmfStateValue.newValueLong(0), TmfStateValue.newValueLong(1) };
XmlUtilsTest.verifyStateIntervals("test1", ss, quark, expectedStarts, expectedValues);
}
break;
case "checkpoint":
{
final int[] expectedStarts = { 1, 5, 7, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueLong(0), TmfStateValue.newValueLong(1), TmfStateValue.newValueLong(0) };
XmlUtilsTest.verifyStateIntervals("checkpoint", ss, quark, expectedStarts, expectedValues);
}
break;
case "and_three_operands":
{
final int[] expectedStarts = { 1, 5, 7, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueLong(1), TmfStateValue.newValueLong(0), TmfStateValue.newValueLong(1) };
XmlUtilsTest.verifyStateIntervals("and_three_operands", ss, quark, expectedStarts, expectedValues);
}
break;
case "not_operand":
{
final int[] expectedStarts = { 1, 5, 7, 7 };
ITmfStateValue[] expectedValues = { TmfStateValue.newValueLong(0), TmfStateValue.newValueLong(1), TmfStateValue.newValueLong(0) };
XmlUtilsTest.verifyStateIntervals("not_operand", ss, quark, expectedStarts, expectedValues);
}
break;
default:
fail("Wrong attribute name " + name);
break;
}
}
} catch (TmfAnalysisException | AttributeNotFoundException | StateSystemDisposedException e) {
fail(e.getMessage());
} finally {
module.dispose();
trace.dispose();
}
}
Aggregations