summaryrefslogtreecommitdiffstats
path: root/test/w3c/promela/test240.scxml
blob: f18b7965298412693c11dbf738676a106fbc2f0e (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0" encoding="UTF-8"?>
<!-- test that datamodel values can be specified both by 'namelist' and by <param>.
invoked child will return success if its Var1 is set to 1, failure otherwise. This
test will fail schema validation because of the multiple occurences of Var1, but
should run correctly. -->
<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">
  <datamodel>
    <data id="Var1" type="int" expr="1"/>
  </datamodel>
  <state id="s0" initial="s01">
    <onentry>
      <send xmlns:scxml="http://www.w3.org/2005/07/scxml" delay="2000" event="timeout"/>
    </onentry>
    <transition event="timeout" target="fail"/>
    <state id="s01">
      <invoke type="http://www.w3.org/TR/scxml/" namelist="Var1">
        <content>
          <scxml initial="sub01" version="1.0" datamodel="promela">
            <datamodel>
              <data id="Var1" type="int" expr="0"/>
            </datamodel>
            <state id="sub01">
              <transition cond="Var1==1" target="subFinal1">
                <send target="#_parent" event="success"/>
              </transition>
              <transition target="subFinal1">
                <send target="#_parent" event="failure"/>
              </transition>
            </state>
            <final id="subFinal1"/>
          </scxml>
        </content>
      </invoke>
      <transition event="success" target="s02"/>
      <transition event="failure" target="fail"/>
    </state>
    <state id="s02">
      <invoke type="http://www.w3.org/TR/scxml/">
        <param name="Var1" expr="1"/>
        <content>
          <scxml initial="sub02" version="1.0" datamodel="promela">
            <datamodel>
              <data id="Var1" type="int" expr="0"/>
            </datamodel>
            <state id="sub02">
              <transition cond="Var1==1" target="subFinal2">
                <send target="#_parent" event="success"/>
              </transition>
              <transition target="subFinal2">
                <send target="#_parent" event="failure"/>
              </transition>
            </state>
            <final id="subFinal2"/>
          </scxml>
        </content>
      </invoke>
      <transition event="success" target="pass"/>
      <transition event="failure" target="fail"/>
    </state>
  </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>