blob: 34b819d256a939f052177d1bd58184ef266b1796 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<tmfxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="xmlDefinition.xsd">
<!-- ***************************************************************************
* Copyright (c) 2016 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*************************************************************************** -->
<pattern version="0" id="test.analysis.2">
<head>
<traceType id="org.eclipse.linuxtools.tmf.core.tests.xmlstub" />
<label value="XML test analysis 2" />
</head>
<patternHandler>
<test id="curStateBad">
<if>
<condition>
<field name="curState" />
<stateValue type="string" value="BAD" />
</condition>
</if>
</test>
<action id="increment_counter_new">
<stateChange>
<stateAttribute type="constant" value="count_new"/>
<stateValue type="int" value="1" increment="true" />
</stateChange>
</action>
<action id="increment_counter_precond">
<stateChange>
<stateAttribute type="constant" value="precond"/>
<stateValue type="int" value="1" increment="true" />
</stateChange>
</action>
<action id="generate_old_segment">
<segment>
<segType segName="OLD"/>
</segment>
</action>
<action id="generate_new_segment">
<segment>
<segType segName="NEW"/>
</segment>
</action>
<fsm id="test" initial="state_old" multiple="false">
<initial>
<transition target="state_old" />
</initial>
<initialState>
<transition target="state_new" />
</initialState>
<state id="state_old">
<transition target="end" action="generate_old_segment"/>
</state>
<state id="state_new">
<transition target="end" action="generate_new_segment"/>
</state>
<final id="end"/>
</fsm>
<fsm id="test1" multiple="false">
<!-- There is only one such event, so it should pass the initial state, but go no further -->
<precondition event="exit" cond="curStateBad" />
<initialState>
<transition target="state_new" action="increment_counter_new"/>
</initialState>
<state id="state_new">
<transition target="state_2" action="increment_counter_precond"/>
</state>
<state id="state_2">
<transition target="end" action="increment_counter_precond"/>
</state>
<final id="end"/>
</fsm>
</patternHandler>
</pattern>
</tmfxml>