summaryrefslogtreecommitdiffstats
path: root/test/w3c/promela/test241.scxml
blob: dff2920f901c3bc285e2949fd617384d71e976dc (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<?xml version="1.0" encoding="UTF-8"?>
<!-- The child process will return success ifits Var1 is set to 1, failure otherwise. For this test
we try passing in Var1 by param and by namelist and check that we either get two successes
or two failures.  This test will fail schema validation due to multiple  declarations 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 event="timeout" delay="2s"/>
    </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="s03"/>
    </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>
      <!-- we got success in s01, so we need to do so here -->
      <transition event="success" target="pass"/>
      <transition event="failure" target="fail"/>
    </state>
    <state id="s03">
      <invoke type="http://www.w3.org/TR/scxml/">
        <param name="Var1" expr="1"/>
        <content>
          <scxml initial="sub03" version="1.0" datamodel="promela">
            <datamodel>
              <data id="Var1" type="int" expr="0"/>
            </datamodel>
            <state id="sub03">
              <transition cond="Var1==1" target="subFinal3">
                <send target="#_parent" event="success"/>
              </transition>
              <transition target="subFinal3">
                <send target="#_parent" event="failure"/>
              </transition>
            </state>
            <final id="subFinal3"/>
          </scxml>
        </content>
      </invoke>
      <!-- we got failure in s01, so we need to do so here -->
      <transition event="failure" target="pass"/>
      <transition event="success" 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>