diff options
author | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2015-03-26 11:11:23 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2015-03-30 11:43:50 +0300 |
commit | 2de05c0d608b0af4ec5da9370de876579a9c3b61 (patch) | |
tree | 44db3223073e939e87a5c4e78920257288305bd8 | |
parent | 43ea5d5e9f35cb6cf9f8e86fbf8372dbdbe1f600 (diff) |
Generate a single QTest that embeds all scion tests.
Change-Id: Ibe7a9a2ba0332e9578e109fb96baac37874cd575
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | src/qscxmllib/scxmlparser.cpp | 44 | ||||
-rw-r--r-- | src/qscxmllib/scxmlparser.h | 11 | ||||
-rw-r--r-- | src/qscxmllib/scxmlstatetable.h | 6 | ||||
-rwxr-xr-x | tests/3rdparty/gen-scion-tests.py | 52 | ||||
-rw-r--r-- | tests/3rdparty/scion.h | 277 | ||||
-rw-r--r-- | tests/3rdparty/scion.qrc | 553 | ||||
-rw-r--r-- | tests/scion/scion.pro | 21 | ||||
-rw-r--r-- | tests/scion/tst_scion.cpp | 385 | ||||
-rw-r--r-- | tests/tests.pro | 1 |
10 files changed, 1330 insertions, 22 deletions
@@ -13,3 +13,5 @@ moc_*.cpp /tests/testCpp/testCpp tst_cppgen +qrc_*.cpp +tst_scion diff --git a/src/qscxmllib/scxmlparser.cpp b/src/qscxmllib/scxmlparser.cpp index b2cb194..59f45a9 100644 --- a/src/qscxmllib/scxmlparser.cpp +++ b/src/qscxmllib/scxmlparser.cpp @@ -49,7 +49,7 @@ void ScxmlParser::ensureInitialState(const QByteArray &initialId) if (!initialId.isEmpty()) { QAbstractState *initialState = table()->idToValue<QAbstractState>(initialId, true); if (initialState) { - m_currentParent->setInitialState(initialState); + currentParent()->setInitialState(initialState); } else { addError(QStringLiteral("could not resolve '%1', for the initial state of %2") .arg(QString::fromUtf8(initialId), @@ -58,9 +58,9 @@ void ScxmlParser::ensureInitialState(const QByteArray &initialId) return; } } - if (!m_currentParent->initialState()) { + if (!currentParent()->initialState()) { QAbstractState *firstState = 0; - loopOnSubStates(m_currentParent, [&firstState](QState *s) -> bool { + loopOnSubStates(currentParent(), [&firstState](QState *s) -> bool { if (!firstState) firstState = s; return false; @@ -69,11 +69,18 @@ void ScxmlParser::ensureInitialState(const QByteArray &initialId) firstState = s; }); if (firstState) { - m_currentParent->setInitialState(firstState); + currentParent()->setInitialState(firstState); } } } +QState *ScxmlParser::currentParent() const +{ + QState *parent = qobject_cast<QState*>(m_currentParent); + Q_ASSERT(!m_currentParent || parent); + return parent; +} + void ScxmlParser::parse() { m_table = new StateTable; @@ -182,7 +189,7 @@ void ScxmlParser::parse() m_stack.append(pNew); } else if (elName == QLatin1String("state")) { if (!checkAttributes(attributes, "|id,initial")) return; - QState *newState = new ScxmlState(m_currentParent); + QState *newState = new ScxmlState(currentParent()); if (!maybeId(attributes, newState)) return; ParserState pNew = ParserState(ParserState::State); pNew.initialId = attributes.value(QLatin1String("initial")).toUtf8(); @@ -190,25 +197,25 @@ void ScxmlParser::parse() m_stack.append(pNew); } else if (elName == QLatin1String("parallel")) { if (!checkAttributes(attributes, "|id")) return; - QState *newState = new ScxmlState(m_currentParent); + QState *newState = new ScxmlState(currentParent()); if (!maybeId(attributes, newState)) return; newState->setChildMode(QState::ParallelStates); m_currentState = m_currentParent = newState; m_stack.append(ParserState(ParserState::Parallel)); } else if (elName == QLatin1String("initial")) { if (!checkAttributes(attributes, "")) return; - if (m_currentParent->childMode() == QState::ParallelStates) { + if (currentParent()->childMode() == QState::ParallelStates) { addError(QStringLiteral("Explicit initial state for parallel states not supported (only implicitly through the initial states of its substates)")); m_state = ParsingError; return; } ParserState pNew(ParserState::Initial); - QState *newState = new ScxmlInitialState(m_currentParent); + QState *newState = new ScxmlInitialState(currentParent()); m_currentState = m_currentParent = newState; m_stack.append(pNew); } else if (elName == QLatin1String("transition")) { if (!checkAttributes(attributes, "|event,cond,target,type")) return; - m_currentTransition = new ScxmlTransition(m_currentParent, + m_currentTransition = new ScxmlTransition(currentParent(), attributes.value(QLatin1String("event")).toUtf8().split(' '), attributes.value(QLatin1String("target")).toUtf8().split(' '), attributes.value(QLatin1String("cond")).toString()); @@ -222,15 +229,16 @@ void ScxmlParser::parse() m_stack.append(pNew); } else if (elName == QLatin1String("final")) { if (!checkAttributes(attributes, "|id")) return; - QFinalState *newState = new QFinalState(m_currentParent); + ScxmlFinalState *newState = new ScxmlFinalState(currentParent()); if (!maybeId(attributes, newState)) return; - m_currentState = newState; + m_currentState = m_currentParent = newState; m_stack.append(ParserState(ParserState::Final)); } else if (elName == QLatin1String("onentry")) { if (!checkAttributes(attributes, "")) return; ParserState pNew(ParserState::OnEntry); switch (m_stack.last().kind) { case ParserState::Final: + Q_ASSERT(qobject_cast<ScxmlFinalState *>(m_currentState)); pNew.instructionContainer = &qobject_cast<ScxmlFinalState *>(m_currentState)->onEntryInstruction; break; case ParserState::State: @@ -262,7 +270,7 @@ void ScxmlParser::parse() m_stack.append(pNew); } else if (elName == QLatin1String("history")) { if (!checkAttributes(attributes, "|id,type")) return; - QHistoryState *newState = new QHistoryState(m_currentParent); + QHistoryState *newState = new QHistoryState(currentParent()); if (!maybeId(attributes, newState)) return; QStringRef type = attributes.value(QLatin1String("type")); if (type.isEmpty() || type == QLatin1String("shallow")) { @@ -275,7 +283,7 @@ void ScxmlParser::parse() return; } ParserState pNew = ParserState(ParserState::History); - m_currentState = newState; + m_currentState = m_currentParent = newState; m_stack.append(pNew); } else if (elName == QLatin1String("raise")) { if (!checkAttributes(attributes, "event")) return; @@ -337,7 +345,7 @@ void ScxmlParser::parse() data.id = attributes.value(QLatin1String("id")).toString(); data.src = attributes.value(QLatin1String("src")).toString(); data.expr = attributes.value(QLatin1String("expr")).toString(); - data.context = m_currentParent; + data.context = currentParent(); table()->m_data.append(data); m_stack.append(ParserState(ParserState::Data)); } else if (elName == QLatin1String("assign")) { @@ -477,12 +485,12 @@ void ScxmlParser::parse() m_currentState = m_currentParent = m_currentParent->parentState(); break; case ParserState::Initial: { - if (m_currentParent->transitions().size() != 1) { + if (currentParent()->transitions().size() != 1) { addError("initial state should have exactly one transition"); m_state = ParsingError; return; } - ScxmlTransition *t = qobject_cast<ScxmlTransition *>(m_currentParent->transitions().first()); + ScxmlTransition *t = qobject_cast<ScxmlTransition *>(currentParent()->transitions().first()); if (!t->eventSelector.isEmpty() || !t->conditionalExp.isEmpty()) { addError("transition in initial state should have no event or condition"); @@ -508,11 +516,11 @@ void ScxmlParser::parse() } case ParserState::Final: case ParserState::History: - m_currentState = m_currentParent; + m_currentState = m_currentParent = m_currentParent->parentState(); break; case ParserState::Transition: Q_ASSERT(m_currentTransition); - m_currentParent->addTransition(m_currentTransition); + currentParent()->addTransition(m_currentTransition); m_currentTransition = 0; case ParserState::OnEntry: break; diff --git a/src/qscxmllib/scxmlparser.h b/src/qscxmllib/scxmlparser.h index 21ce49e..e6492ea 100644 --- a/src/qscxmllib/scxmlparser.h +++ b/src/qscxmllib/scxmlparser.h @@ -72,8 +72,11 @@ struct ParserState { bool collectChars(); - ParserState(Kind kind=None) : - kind(kind) { } + ParserState(Kind kind=None) + : kind(kind) + , instruction(0) + , instructionContainer(0) + {} ~ParserState() { } bool validChild(ParserState::Kind child) const; @@ -146,9 +149,11 @@ private: QStringList optionalNames); void ensureInitialState(const QByteArray &initialId); + QState *currentParent() const; + StateTable *m_table; ScxmlTransition *m_currentTransition; - QState *m_currentParent; + QAbstractState *m_currentParent; QAbstractState *m_currentState; LoaderFunction m_loader; QStringList m_namespacesToIgnore; diff --git a/src/qscxmllib/scxmlstatetable.h b/src/qscxmllib/scxmlstatetable.h index 36b1efb..d844f10 100644 --- a/src/qscxmllib/scxmlstatetable.h +++ b/src/qscxmllib/scxmlstatetable.h @@ -607,7 +607,11 @@ class SCXML_EXPORT ScxmlFinalState: public QFinalState { Q_OBJECT public: - ScxmlFinalState(QState *parent) : QFinalState(parent) { } + ScxmlFinalState(QState *parent) + : QFinalState(parent) + , onEntryInstruction(this) + , onExitInstruction(this) + {} StateTable *table() const; virtual bool init(); diff --git a/tests/3rdparty/gen-scion-tests.py b/tests/3rdparty/gen-scion-tests.py new file mode 100755 index 0000000..40c66fa --- /dev/null +++ b/tests/3rdparty/gen-scion-tests.py @@ -0,0 +1,52 @@ +#!/usr/bin/python + +# Copyright (c) 2015 Digia Plc +# For any questions to Digia, please use contact form at http://qt.digia.com/ +# +# All Rights Reserved. +# +# NOTICE: All information contained herein is, and remains +# the property of Digia Plc and its suppliers, +# if any. The intellectual and technical concepts contained +# herein are proprietary to Digia Plc +# and its suppliers and may be covered by Finnish and Foreign Patents, +# patents in process, and are protected by trade secret or copyright law. +# Dissemination of this information or reproduction of this material +# is strictly forbidden unless prior written permission is obtained +# from Digia Plc. + +from os import walk +from os.path import isfile, join, splitext + +f = open("scion.qrc", "w") +f.write("<!DOCTYPE RCC><RCC version=\"1.0\">\n<qresource>\n") + +g = open("scion.h","w") +g.write("const char *testBases[] = {") + +first = True +mypath = "scion-tests/scxml-test-framework/test" +for root, _, filenames in walk(mypath): + for filename in filenames: + if filename.endswith(".scxml"): + base = join(root,splitext(filename)[0]) + json = base+".json" + if isfile(json): + f.write("<file>") + f.write(join(root,filename)) + f.write("</file>\n") + f.write("<file>") + f.write(json) + f.write("</file>\n") + if first: + first = False + else: + g.write(",") + g.write("\n \"" + base + "\"") + +f.write("</qresource></RCC>\n") +f.close() + +g.write("\n};\n") +g.close() + diff --git a/tests/3rdparty/scion.h b/tests/3rdparty/scion.h new file mode 100644 index 0000000..8dbfacd --- /dev/null +++ b/tests/3rdparty/scion.h @@ -0,0 +1,277 @@ +const char *testBases[] = { + "scion-tests/scxml-test-framework/test/actionSend/send1", + "scion-tests/scxml-test-framework/test/actionSend/send2", + "scion-tests/scxml-test-framework/test/actionSend/send3", + "scion-tests/scxml-test-framework/test/actionSend/send4", + "scion-tests/scxml-test-framework/test/actionSend/send5", + "scion-tests/scxml-test-framework/test/actionSend/send6", + "scion-tests/scxml-test-framework/test/actionSend/send7", + "scion-tests/scxml-test-framework/test/actionSend/send8", + "scion-tests/scxml-test-framework/test/assign-current-small-step/test0", + "scion-tests/scxml-test-framework/test/assign-current-small-step/test1", + "scion-tests/scxml-test-framework/test/assign-current-small-step/test2", + "scion-tests/scxml-test-framework/test/assign-current-small-step/test3", + "scion-tests/scxml-test-framework/test/assign-current-small-step/test4", + "scion-tests/scxml-test-framework/test/atom3-basic-tests/m0", + "scion-tests/scxml-test-framework/test/atom3-basic-tests/m1", + "scion-tests/scxml-test-framework/test/atom3-basic-tests/m2", + "scion-tests/scxml-test-framework/test/atom3-basic-tests/m3", + "scion-tests/scxml-test-framework/test/basic/basic0", + "scion-tests/scxml-test-framework/test/basic/basic1", + "scion-tests/scxml-test-framework/test/basic/basic2", + "scion-tests/scxml-test-framework/test/cond-js/test0", + "scion-tests/scxml-test-framework/test/cond-js/test1", + "scion-tests/scxml-test-framework/test/cond-js/test2", + "scion-tests/scxml-test-framework/test/cond-js/TestConditionalTransition", + "scion-tests/scxml-test-framework/test/default-initial-state/initial1", + "scion-tests/scxml-test-framework/test/default-initial-state/initial2", + "scion-tests/scxml-test-framework/test/delayedSend/send1", + "scion-tests/scxml-test-framework/test/delayedSend/send2", + "scion-tests/scxml-test-framework/test/delayedSend/send3", + "scion-tests/scxml-test-framework/test/documentOrder/documentOrder0", + "scion-tests/scxml-test-framework/test/foreach/test1", + "scion-tests/scxml-test-framework/test/hierarchy/hier0", + "scion-tests/scxml-test-framework/test/hierarchy/hier1", + "scion-tests/scxml-test-framework/test/hierarchy/hier2", + "scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test0", + "scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test1", + "scion-tests/scxml-test-framework/test/history/history0", + "scion-tests/scxml-test-framework/test/history/history1", + "scion-tests/scxml-test-framework/test/history/history2", + "scion-tests/scxml-test-framework/test/history/history3", + "scion-tests/scxml-test-framework/test/history/history4", + "scion-tests/scxml-test-framework/test/history/history5", + "scion-tests/scxml-test-framework/test/history/history6", + "scion-tests/scxml-test-framework/test/if-else/test0", + "scion-tests/scxml-test-framework/test/in/TestInPredicate", + "scion-tests/scxml-test-framework/test/internal-transitions/test0", + "scion-tests/scxml-test-framework/test/internal-transitions/test1", + "scion-tests/scxml-test-framework/test/more-parallel/test0", + "scion-tests/scxml-test-framework/test/more-parallel/test1", + "scion-tests/scxml-test-framework/test/more-parallel/test10", + "scion-tests/scxml-test-framework/test/more-parallel/test2", + "scion-tests/scxml-test-framework/test/more-parallel/test3", + "scion-tests/scxml-test-framework/test/more-parallel/test4", + "scion-tests/scxml-test-framework/test/more-parallel/test5", + "scion-tests/scxml-test-framework/test/more-parallel/test6", + "scion-tests/scxml-test-framework/test/more-parallel/test7", + "scion-tests/scxml-test-framework/test/more-parallel/test8", + "scion-tests/scxml-test-framework/test/more-parallel/test9", + "scion-tests/scxml-test-framework/test/multiple-events-per-transition/test1", + "scion-tests/scxml-test-framework/test/parallel/test0", + "scion-tests/scxml-test-framework/test/parallel/test1", + "scion-tests/scxml-test-framework/test/parallel/test2", + "scion-tests/scxml-test-framework/test/parallel/test3", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test0", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test1", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test10", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test11", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test12", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test13", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test14", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test15", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test16", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test17", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test18", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test19", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test2", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test20", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test21", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test22", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test23", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test24", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test25", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test26", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test27", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test28", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test29", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test3", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test30", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test31", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test4", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test5", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test6", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test7", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test8", + "scion-tests/scxml-test-framework/test/parallel+interrupt/test9", + "scion-tests/scxml-test-framework/test/script/test0", + "scion-tests/scxml-test-framework/test/script/test1", + "scion-tests/scxml-test-framework/test/script/test2", + "scion-tests/scxml-test-framework/test/script-src/test0", + "scion-tests/scxml-test-framework/test/script-src/test1", + "scion-tests/scxml-test-framework/test/script-src/test2", + "scion-tests/scxml-test-framework/test/script-src/test3", + "scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/star0", + "scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test0", + "scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test1", + "scion-tests/scxml-test-framework/test/send-data/send1", + "scion-tests/scxml-test-framework/test/send-internal/test0", + "scion-tests/scxml-test-framework/test/targetless-transition/test0", + "scion-tests/scxml-test-framework/test/targetless-transition/test1", + "scion-tests/scxml-test-framework/test/targetless-transition/test2", + "scion-tests/scxml-test-framework/test/targetless-transition/test3", + "scion-tests/scxml-test-framework/test/w3c-ecma/test144.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test147.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test148.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test149.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test150.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test151.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test152.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test153.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test155.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test156.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test158.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test159.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test172.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test173.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test174.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test175.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test176.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test178.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test179.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test183.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test185.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test186.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test187.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test194.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test198.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test199.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test200.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test201.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test205.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test208.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test210.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test215.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test216.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test220.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test223.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test224.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test225.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test226.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test228.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test233.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test235.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test236.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test239.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test247.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test250.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test276.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test278.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test279.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test280.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test286.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test287.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test294.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test298.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test301.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test302.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test303.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test304.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test307.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test309.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test310.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test311.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test312.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test313.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test314.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test318.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test319.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test321.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test322.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test323.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test324.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test325.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test326.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test329.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test330.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test331.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test332.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test333.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test335.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test337.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test338.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test339.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test342.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test343.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test344.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test346.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test355.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test364.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test372.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test375.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test376.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test377.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test378.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test387.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test388.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test396.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test399.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test401.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test402.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test403a.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test403b.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test403c.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test404.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test405.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test406.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test407.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test409.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test411.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test412.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test413.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test416.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test417.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test419.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test421.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test423.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test436.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test441a.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test441b.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test444.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test445.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test448.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test449.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test451.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test453.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test456.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test487.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test488.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test503.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test504.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test505.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test506.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test521.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test525.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test527.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test528.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test529.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test530.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test533.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test550.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test551.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test552.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test554.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test557.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test558.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test560.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test562.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test569.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test570.txml", + "scion-tests/scxml-test-framework/test/w3c-ecma/test576.txml" +}; diff --git a/tests/3rdparty/scion.qrc b/tests/3rdparty/scion.qrc new file mode 100644 index 0000000..f01cb3b --- /dev/null +++ b/tests/3rdparty/scion.qrc @@ -0,0 +1,553 @@ +<!DOCTYPE RCC><RCC version="1.0"> +<qresource> +<file>scion-tests/scxml-test-framework/test/actionSend/send1.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send1.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send2.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send2.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send3.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send3.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send4.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send4.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send5.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send5.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send6.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send6.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send7.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send7.json</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send8.scxml</file> +<file>scion-tests/scxml-test-framework/test/actionSend/send8.json</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test0.json</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test1.json</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test2.json</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test3.json</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test4.scxml</file> +<file>scion-tests/scxml-test-framework/test/assign-current-small-step/test4.json</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m0.scxml</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m0.json</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m1.scxml</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m1.json</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m2.scxml</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m2.json</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m3.scxml</file> +<file>scion-tests/scxml-test-framework/test/atom3-basic-tests/m3.json</file> +<file>scion-tests/scxml-test-framework/test/basic/basic0.scxml</file> +<file>scion-tests/scxml-test-framework/test/basic/basic0.json</file> +<file>scion-tests/scxml-test-framework/test/basic/basic1.scxml</file> +<file>scion-tests/scxml-test-framework/test/basic/basic1.json</file> +<file>scion-tests/scxml-test-framework/test/basic/basic2.scxml</file> +<file>scion-tests/scxml-test-framework/test/basic/basic2.json</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test0.json</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test1.json</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/cond-js/test2.json</file> +<file>scion-tests/scxml-test-framework/test/cond-js/TestConditionalTransition.scxml</file> +<file>scion-tests/scxml-test-framework/test/cond-js/TestConditionalTransition.json</file> +<file>scion-tests/scxml-test-framework/test/default-initial-state/initial1.scxml</file> +<file>scion-tests/scxml-test-framework/test/default-initial-state/initial1.json</file> +<file>scion-tests/scxml-test-framework/test/default-initial-state/initial2.scxml</file> +<file>scion-tests/scxml-test-framework/test/default-initial-state/initial2.json</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send1.scxml</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send1.json</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send2.scxml</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send2.json</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send3.scxml</file> +<file>scion-tests/scxml-test-framework/test/delayedSend/send3.json</file> +<file>scion-tests/scxml-test-framework/test/documentOrder/documentOrder0.scxml</file> +<file>scion-tests/scxml-test-framework/test/documentOrder/documentOrder0.json</file> +<file>scion-tests/scxml-test-framework/test/foreach/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/foreach/test1.json</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier0.scxml</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier0.json</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier1.scxml</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier1.json</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier2.scxml</file> +<file>scion-tests/scxml-test-framework/test/hierarchy/hier2.json</file> +<file>scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test0.json</file> +<file>scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/hierarchy+documentOrder/test1.json</file> +<file>scion-tests/scxml-test-framework/test/history/history0.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history0.json</file> +<file>scion-tests/scxml-test-framework/test/history/history1.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history1.json</file> +<file>scion-tests/scxml-test-framework/test/history/history2.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history2.json</file> +<file>scion-tests/scxml-test-framework/test/history/history3.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history3.json</file> +<file>scion-tests/scxml-test-framework/test/history/history4.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history4.json</file> +<file>scion-tests/scxml-test-framework/test/history/history5.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history5.json</file> +<file>scion-tests/scxml-test-framework/test/history/history6.scxml</file> +<file>scion-tests/scxml-test-framework/test/history/history6.json</file> +<file>scion-tests/scxml-test-framework/test/if-else/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/if-else/test0.json</file> +<file>scion-tests/scxml-test-framework/test/in/TestInPredicate.scxml</file> +<file>scion-tests/scxml-test-framework/test/in/TestInPredicate.json</file> +<file>scion-tests/scxml-test-framework/test/internal-transitions/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/internal-transitions/test0.json</file> +<file>scion-tests/scxml-test-framework/test/internal-transitions/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/internal-transitions/test1.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test0.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test1.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test10.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test10.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test2.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test3.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test4.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test4.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test5.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test5.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test6.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test6.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test7.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test7.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test8.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test8.json</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test9.scxml</file> +<file>scion-tests/scxml-test-framework/test/more-parallel/test9.json</file> +<file>scion-tests/scxml-test-framework/test/multiple-events-per-transition/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/multiple-events-per-transition/test1.json</file> +<file>scion-tests/scxml-test-framework/test/parallel/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel/test0.json</file> +<file>scion-tests/scxml-test-framework/test/parallel/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel/test1.json</file> +<file>scion-tests/scxml-test-framework/test/parallel/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel/test2.json</file> +<file>scion-tests/scxml-test-framework/test/parallel/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel/test3.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test0.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test1.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test10.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test10.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test11.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test11.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test12.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test12.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test13.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test13.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test14.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test14.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test15.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test15.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test16.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test16.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test17.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test17.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test18.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test18.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test19.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test19.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test2.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test20.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test20.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test21.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test21.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test22.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test22.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test23.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test23.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test24.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test24.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test25.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test25.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test26.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test26.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test27.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test27.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test28.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test28.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test29.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test29.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test3.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test30.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test30.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test31.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test31.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test4.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test4.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test5.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test5.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test6.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test6.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test7.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test7.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test8.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test8.json</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test9.scxml</file> +<file>scion-tests/scxml-test-framework/test/parallel+interrupt/test9.json</file> +<file>scion-tests/scxml-test-framework/test/script/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/script/test0.json</file> +<file>scion-tests/scxml-test-framework/test/script/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/script/test1.json</file> +<file>scion-tests/scxml-test-framework/test/script/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/script/test2.json</file> +<file>scion-tests/scxml-test-framework/test/script-src/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/script-src/test0.json</file> +<file>scion-tests/scxml-test-framework/test/script-src/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/script-src/test1.json</file> +<file>scion-tests/scxml-test-framework/test/script-src/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/script-src/test2.json</file> +<file>scion-tests/scxml-test-framework/test/script-src/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/script-src/test3.json</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/star0.scxml</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/star0.json</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test0.json</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/scxml-prefix-event-name-matching/test1.json</file> +<file>scion-tests/scxml-test-framework/test/send-data/send1.scxml</file> +<file>scion-tests/scxml-test-framework/test/send-data/send1.json</file> +<file>scion-tests/scxml-test-framework/test/send-internal/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/send-internal/test0.json</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test0.scxml</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test0.json</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test1.scxml</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test1.json</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test2.scxml</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test2.json</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test3.scxml</file> +<file>scion-tests/scxml-test-framework/test/targetless-transition/test3.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test144.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test144.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test147.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test147.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test148.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test148.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test149.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test149.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test150.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test150.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test151.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test151.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test152.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test152.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test153.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test153.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test155.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test155.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test156.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test156.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test158.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test158.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test159.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test159.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test172.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test172.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test173.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test173.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test174.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test174.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test175.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test175.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test176.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test176.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test178.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test178.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test179.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test179.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test183.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test183.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test185.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test185.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test186.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test186.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test187.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test187.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test194.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test194.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test198.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test198.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test199.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test199.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test200.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test200.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test201.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test201.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test205.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test205.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test208.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test208.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test210.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test210.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test215.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test215.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test216.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test216.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test220.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test220.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test223.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test223.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test224.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test224.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test225.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test225.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test226.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test226.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test228.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test228.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test233.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test233.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test235.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test235.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test236.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test236.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test239.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test239.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test247.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test247.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test250.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test250.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test276.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test276.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test278.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test278.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test279.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test279.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test280.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test280.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test286.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test286.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test287.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test287.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test294.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test294.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test298.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test298.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test301.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test301.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test302.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test302.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test303.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test303.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test304.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test304.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test307.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test307.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test309.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test309.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test310.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test310.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test311.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test311.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test312.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test312.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test313.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test313.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test314.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test314.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test318.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test318.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test319.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test319.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test321.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test321.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test322.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test322.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test323.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test323.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test324.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test324.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test325.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test325.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test326.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test326.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test329.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test329.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test330.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test330.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test331.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test331.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test332.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test332.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test333.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test333.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test335.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test335.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test337.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test337.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test338.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test338.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test339.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test339.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test342.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test342.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test343.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test343.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test344.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test344.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test346.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test346.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test355.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test355.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test364.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test364.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test372.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test372.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test375.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test375.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test376.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test376.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test377.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test377.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test378.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test378.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test387.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test387.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test388.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test388.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test396.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test396.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test399.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test399.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test401.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test401.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test402.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test402.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403a.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403a.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403b.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403b.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403c.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test403c.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test404.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test404.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test405.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test405.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test406.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test406.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test407.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test407.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test409.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test409.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test411.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test411.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test412.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test412.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test413.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test413.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test416.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test416.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test417.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test417.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test419.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test419.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test421.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test421.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test423.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test423.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test436.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test436.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test441a.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test441a.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test441b.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test441b.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test444.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test444.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test445.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test445.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test448.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test448.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test449.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test449.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test451.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test451.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test453.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test453.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test456.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test456.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test487.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test487.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test488.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test488.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test503.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test503.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test504.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test504.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test505.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test505.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test506.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test506.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test521.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test521.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test525.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test525.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test527.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test527.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test528.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test528.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test529.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test529.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test530.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test530.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test533.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test533.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test550.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test550.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test551.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test551.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test552.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test552.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test554.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test554.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test557.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test557.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test558.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test558.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test560.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test560.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test562.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test562.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test569.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test569.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test570.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test570.txml.json</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test576.txml.scxml</file> +<file>scion-tests/scxml-test-framework/test/w3c-ecma/test576.txml.json</file> +</qresource></RCC> diff --git a/tests/scion/scion.pro b/tests/scion/scion.pro new file mode 100644 index 0000000..1f53b13 --- /dev/null +++ b/tests/scion/scion.pro @@ -0,0 +1,21 @@ +include (../../src/qscxmllib/qscxmllib.pri) + +QT += testlib +CONFIG += testcase + +QT += core qml +QT -= gui + +TARGET = tst_scion +CONFIG += console +CONFIG -= app_bundle + +TEMPLATE = app + +RESOURCES = ../3rdparty/scion.qrc + +SOURCES += \ + tst_scion.cpp + +HEADERS += \ + $$PWD/../3rdparty/scion.h diff --git a/tests/scion/tst_scion.cpp b/tests/scion/tst_scion.cpp new file mode 100644 index 0000000..4dedb45 --- /dev/null +++ b/tests/scion/tst_scion.cpp @@ -0,0 +1,385 @@ +/**************************************************************************** + ** + ** Copyright (c) 2015 Digia Plc + ** For any questions to Digia, please use contact form at http://qt.digia.com/ + ** + ** All Rights Reserved. + ** + ** NOTICE: All information contained herein is, and remains + ** the property of Digia Plc and its suppliers, + ** if any. The intellectual and technical concepts contained + ** herein are proprietary to Digia Plc + ** and its suppliers and may be covered by Finnish and Foreign Patents, + ** patents in process, and are protected by trade secret or copyright law. + ** Dissemination of this information or reproduction of this material + ** is strictly forbidden unless prior written permission is obtained + ** from Digia Plc. + ****************************************************************************/ + +#include <QtTest/QtTest> +#include <QJsonDocument> + +#include <qscxmllib/scxmlparser.h> + +#include "../3rdparty/scion.h" + +enum { SpyWaitTime = 500 }; + +static QSet<QString> weFailOnThese = QSet<QString>() + ; + +static QSet<QString> weDieOnThese = QSet<QString>() + << QLatin1String("scion-tests/scxml-test-framework/test/delayedSend/send1") + << QLatin1String("scion-tests/scxml-test-framework/test/delayedSend/send2") + << QLatin1String("scion-tests/scxml-test-framework/test/delayedSend/send3") + << QLatin1String("scion-tests/scxml-test-framework/test/foreach/test1") + << QLatin1String("scion-tests/scxml-test-framework/test/history/history3") // infinite loop? + << QLatin1String("scion-tests/scxml-test-framework/test/history/history5") // infinite loop? + << QLatin1String("scion-tests/scxml-test-framework/test/send-data/send1") + << QLatin1String("scion-tests/scxml-test-framework/test/send-internal/test0") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test144.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test147.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test150.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test151.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test152.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test153.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test155.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test156.txml") + // the ones below here require <send> to work + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test172.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test173.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test174.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test175.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test176.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test178.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test179.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test183.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test185.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test186.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test187.txml") // sub state machine? + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test194.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test198.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test199.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test200.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test200.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test201.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test201.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test205.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test205.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test207.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test208.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test208.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test210.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test210.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test215.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test216.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test220.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test223.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test224.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test225.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test226.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test228.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test229.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test230.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test232.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test233.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test233.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test234.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test235.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test236.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test236.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test237.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test239.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test240.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test241.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test242.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test243.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test244.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test245.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test247.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test250.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test250.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test252.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test253.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test330.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test331.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test332.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test333.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test336.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test338.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test338.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test342.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test364.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test372.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test376.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test378.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test387.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test388.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test399.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test401.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test402.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test403a.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test403c.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test405.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test406.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test409.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test411.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test412.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test416.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test417.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test419.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test421.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test422.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test423.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test423.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test521.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test530.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test554.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test560.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test562.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test570.txml") + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test576.txml") + // <foreach> + << QLatin1String("scion-tests/scxml-test-framework/test/w3c-ecma/test525.txml") + ; + +static QSet<QString> differentSemantics = QSet<QString>() + << QLatin1String("scion-tests/scxml-test-framework/test/history/history0") + << QLatin1String("scion-tests/scxml-test-framework/test/history/history1") + << QLatin1String("scion-tests/scxml-test-framework/test/history/history2") + << QLatin1String("scion-tests/scxml-test-framework/test/history/history4") + << QLatin1String("scion-tests/scxml-test-framework/test/history/history6") + ; + +using namespace Scxml; + +class TestScion: public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void scion_data(); + void scion(); + +private: + bool runTest(StateTable *stateMachine, const QJsonObject &testDescription); +}; + +void TestScion::initTestCase() +{ +} + +void TestScion::scion_data() +{ + QTest::addColumn<QString>("scxml"); + QTest::addColumn<QString>("json"); + QTest::addColumn<bool>("weFailOnThis"); + + const int nrOfTests = sizeof(testBases)/sizeof(const char *); + for (int i = 0; i < nrOfTests; ++i) { + QString base = QString::fromUtf8(testBases[i]); + if (weDieOnThese.contains(base) || differentSemantics.contains(base)) + continue; + QTest::newRow(testBases[i]) << base + QLatin1String(".scxml") + << base + QLatin1String(".json") + << weFailOnThese.contains(base); + } +} + +void TestScion::scion() +{ + QFETCH(QString, scxml); + QFETCH(QString, json); + QFETCH(bool, weFailOnThis); + + fprintf(stderr, "\n\n%s\n\n", qPrintable(json)); + + QFile jsonFile(QLatin1String(":/") + json); + QVERIFY(jsonFile.open(QIODevice::ReadOnly)); + auto testDescription = QJsonDocument::fromJson(jsonFile.readAll()); + jsonFile.close(); + + QFile scxmlFile(QLatin1String(":/") + scxml); + QVERIFY(scxmlFile.open(QIODevice::ReadOnly)); + QXmlStreamReader xmlReader(&scxmlFile); + ScxmlParser parser(&xmlReader); + parser.parse(); + QCOMPARE(parser.state(), ScxmlParser::FinishedParsing); + QVERIFY(parser.errors().isEmpty()); + scxmlFile.close(); + + if (weFailOnThis) + QEXPECT_FAIL("", "We are expected to fail", Continue); + QVERIFY(runTest(parser.table(), testDescription.object())); +} + +static QList<QByteArray> getStates(const QJsonObject &obj, const QString &key) +{ + QList<QByteArray> states; + auto jsonStates = obj.value(key).toArray(); + for (int i = 0, ei = jsonStates.size(); i != ei; ++i) { + QString state = jsonStates.at(i).toString(); + Q_ASSERT(!state.isEmpty()); + states.append(state.toUtf8()); + } + std::sort(states.begin(), states.end()); + return states; +} + +static bool verifyStates(StateTable *stateMachine, const QJsonObject &stateDescription, const QString &key) +{ + auto current = stateMachine->currentStates(); + std::sort(current.begin(), current.end()); + auto expected = getStates(stateDescription, key); + if (current == expected) + return true; + + qWarning() << "Incorrect" << key << "!"; + qWarning() << "Current configuration:" << current; + qWarning() << "Expected configuration:" << expected; + return false; +} + +static bool playEvent(StateTable *stateMachine, const QJsonObject &eventDescription) +{ + if (!stateMachine->isRunning()) { + qWarning() << "State machine stopped running!"; + return false; + } + + Q_ASSERT(eventDescription.contains(QLatin1String("event"))); + auto event = eventDescription.value(QLatin1String("event")).toObject(); + auto eventName = event.value(QLatin1String("name")).toString().toUtf8(); + Q_ASSERT(!eventName.isEmpty()); + ScxmlEvent::EventType type = ScxmlEvent::External; + if (event.contains(QLatin1String("type"))) { + QString typeStr = event.value(QLatin1String("type")).toString(); + if (typeStr.compare(QLatin1String("external"), Qt::CaseInsensitive) == 0) + type = ScxmlEvent::Internal; + else if (typeStr.compare(QLatin1String("platform"), Qt::CaseInsensitive) == 0) + type = ScxmlEvent::Platform; + else { + qWarning() << "unexpected event type in " << eventDescription; + return false; + } + } + QVariantList datas; + QStringList dataNames; + // remove ifs and rely on defaults? + if (event.contains(QLatin1String("data"))) { + QJsonValue dataVal = event.value(QLatin1String("data")); + if (dataVal.isObject()) { + QJsonObject dataObj = dataVal.toObject(); + for (QJsonObject::const_iterator i = dataObj.constBegin(); i != dataObj.constEnd(); ++i) { + dataNames.append(i.key()); + datas.append(i.value().toVariant()); + } + } else { + datas.append(dataVal.toVariant()); + } + } + QByteArray sendid; + if (event.contains(QLatin1String("sendid"))) + sendid = event.value(QLatin1String("sendid")).toString().toUtf8(); + QString origin; + if (event.contains(QLatin1String("origin"))) + origin = event.value(QLatin1String("origin")).toString(); + QString origintype; + if (event.contains(QLatin1String("origintype"))) + origintype = event.value(QLatin1String("origintype")).toString(); + QByteArray invokeid; + if (event.contains(QLatin1String("invokeid"))) + invokeid = event.value(QLatin1String("invokeid")).toString().toUtf8(); + stateMachine->submitEvent(eventName, datas, dataNames, type, sendid, origin, origintype, invokeid); + + if (!QSignalSpy(stateMachine, SIGNAL(reachedStableState(bool))).wait(SpyWaitTime)) { + qWarning() << "State machine did not reach a stable state!"; + } else if (verifyStates(stateMachine, eventDescription, QLatin1String("nextConfiguration"))) + return true; + + qWarning() << "... after sending event" << event; + return false; +} + +static bool playEvents(StateTable *stateMachine, const QJsonObject &testDescription) +{ + auto jsonEvents = testDescription.value(QLatin1String("events")); + Q_ASSERT(!jsonEvents.isNull()); + auto eventsArray = jsonEvents.toArray(); + for (int i = 0, ei = eventsArray.size(); i != ei; ++i) { + if (!playEvent(stateMachine, eventsArray.at(i).toObject())) + return false; + } + return true; +} + +bool TestScion::runTest(StateTable *stateMachine, const QJsonObject &testDescription) +{ + QSignalSpy stableStateSpy(stateMachine, SIGNAL(reachedStableState(bool))); + + QJSEngine *jsEngine = new QJSEngine(stateMachine); + stateMachine->setEngine(jsEngine); + if (!stateMachine->init()) { + qWarning() << "init failed"; + return false; + } + stateMachine->start(); + if (!stableStateSpy.wait(SpyWaitTime)) { qWarning() << "failed to reach stable state"; return false; } + + if (!verifyStates(stateMachine, testDescription, QLatin1String("initialConfiguration"))) + return false; + + return playEvents(stateMachine, testDescription); +} + +QTEST_MAIN(TestScion) +#include "tst_scion.moc" diff --git a/tests/tests.pro b/tests/tests.pro index ff04319..ede5bdf 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -3,4 +3,5 @@ TEMPLATE = subdirs SUBDIRS += \ cppgen \ + scion \ testCpp |