It is an attempt to collect test passing results per every SCXML framework in one place.
Framework | Datamodel | W3C Mandatory | W3C Optional | Compliance |
---|---|---|---|---|
uSCXML 2.0 | ecmascript | 159 of 159 | 33 of 33 | Full |
Qt SCXML 5.15 | ecmascript | 141 of 159 | 17 of 33 | Partial |
SCION CLI 1.0.37 | ecmascript | 156 of 159 | 18 of 33 | Partial |
PyBlendSCXML 1.0.0 | python | 159 of 159 | 22 of 33 | Partial |
There are variety of SCXML frameworks and validation tests passing results may vary. It means that if you write your scxml code in one platform it may not work in other. So it would be great to see the comparison between platforms and to know from the very beginning about that platform issues. Also there is a wish to be independent from framework owners in the meaning that we will execute tests in our conditions.
We will collect tests in the SCXML-Tutorial/Tests folder. Then we will separate them by <datamodel> folders
SCXML-tutorial/Tests
ecma
Custom
W3C
Mandatory
Auto
Manual
Optional
Auto
Manual
lua
...
W3C folder will collect tests based on W3C SCXML 1.0 Implementation Report
Test MUST have commented description as the first comment in XML document or the first comment of XML root <scxml> element
WARNING! Text in comment must be a valid Markdown text!
pass
Look at the picture above
fail
Look at the picture above
We use 5 seconds timeout per stable configuration of the state machine. It means that if your state machine does nothing per 5 seconds it will be marked as failed by timeout.
We validate only tests without XML syntax errors and critical SCXML bugs such as transition deadlock (when two states are connected with empty transitions) etc.