summaryrefslogtreecommitdiffstats
path: root/test/w3c/promela/test252.scxml
blob: 3a4a982c4ce527385eb16c8004c9484275a16785 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?xml version="1.0" encoding="UTF-8"?>
<!-- test that we don't process any events received from the invoked process once it is cancelled.  child
process tries to send us childToParent in an onexit handler.  If we get it, we fail.  
timeout indicates success.   -->
<scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" version="1.0" datamodel="promela">
  <state id="s0" initial="s01">
    <onentry>
      <send xmlns:scxml="http://www.w3.org/2005/07/scxml" delay="1000" event="timeout"/>
    </onentry>
    <transition event="timeout" target="pass"/>
    <transition event="childToParent" target="fail"/>
    <transition event="done.invoke" target="fail"/>
    <state id="s01">
      <onentry>
        <send event="foo"/>
      </onentry>
      <invoke type="http://www.w3.org/TR/scxml/">
        <content>
          <scxml initial="sub0" version="1.0" datamodel="promela">
            <state id="sub0">
              <onentry>
                <send xmlns:scxml="http://www.w3.org/2005/07/scxml" delay="2000" event="timeout"/>
              </onentry>
              <transition event="timeout" target="subFinal"/>
              <onexit>
                <send target="#_parent" event="childToParent"/>
              </onexit>
            </state>
            <final id="subFinal"/>
          </scxml>
        </content>
      </invoke>
      <!-- this transition will cause the invocation to be cancelled -->
      <transition event="foo" target="s02"/>
    </state>
    <state id="s02"/>
  </state>
  <final xmlns:scxml="http://www.w3.org/2005/07/scxml" id="pass">
    <onentry>
      <log label="Outcome" expr="'pass'"/>
    </onentry>
  </final>
  <final xmlns:scxml="http://www.w3.org/2005/07/scxml" id="fail">
    <onentry>
      <log label="Outcome" expr="'fail'"/>
    </onentry>
  </final>
</scxml>