summaryrefslogtreecommitdiffstats
path: root/test/w3c/promela/test215.scxml
blob: 3f139c5048139dd17d2988de52c284630ee4b1d4 (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
<?xml version="1.0" encoding="UTF-8"?>
<!-- we test that typexpr is evaluated at runtime.  If the original value of var1 is used, the invocation
will fail (test215sub1.scxml is not of type 'foo', even if the platform supports foo as a type).  If
the runtime value is used, the invocation will succeed -->
<scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:conf="http://www.w3.org/2005/scxml-conformance" initial="s0" datamodel="promela" version="1.0">
  <datamodel>
    <data id="Var1" type="string" expr="'foo'"/>
  </datamodel>
  <state id="s0">
    <onentry>
      <send xmlns:scxml="http://www.w3.org/2005/07/scxml" delay="5000" event="timeout"/>
      <assign location="Var1" expr="'http://www.w3.org/TR/scxml/'"/>
    </onentry>
    <invoke typeexpr="Var1">
      <content>
        <!-- when invoked, terminate returning done.invoke. This proves that the invocation succeeded.   -->
        <scxml initial="subFinal" datamodel="promela" version="1.0">
          <final id="subFinal"/>
        </scxml>
      </content>
    </invoke>
    <transition event="done.invoke" target="pass"/>
    <transition event="*" target="fail"/>
  </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>