summaryrefslogtreecommitdiffstats
path: root/test/src/test-doneevent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/test-doneevent.cpp')
-rw-r--r--test/src/test-doneevent.cpp113
1 files changed, 58 insertions, 55 deletions
diff --git a/test/src/test-doneevent.cpp b/test/src/test-doneevent.cpp
index d49f8e2..0330512 100644
--- a/test/src/test-doneevent.cpp
+++ b/test/src/test-doneevent.cpp
@@ -4,60 +4,63 @@ using namespace uscxml;
// -- Issue 56 on github
int main(int argc, char** argv) {
- std::deque<std::string> messageQueue;
- messageQueue.push_back("a");
- messageQueue.push_back("b");
- messageQueue.push_back("c");
- messageQueue.push_back("d");
-
- const char* scxmlContent =
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- "<scxml xmlns=\"http://www.w3.org/2005/07/scxml\" version=\"1.0\" initial=\"initial_state\">"
- " <state id=\"initial_state\">"
- " <transition event=\"a\" target=\"parallel_state\"/>"
- " </state>"
- " <parallel id=\"parallel_state\">"
- " <transition event=\"done.state.parallel_state\" target=\"join_state\"/>"
- " <state id=\"p1out\" initial=\"p1\">"
- " <state id=\"p1\">"
- " <transition event=\"b\" target=\"p11\"/>"
- " </state>"
- " <final id=\"p11\"/>"
- " </state>"
- " <state id=\"p2out\" initial=\"p2\">"
- " <state id=\"p2\">"
- " <transition event=\"c\" target=\"p21\"/>"
- " </state>"
- " <final id=\"p21\"/>"
- " </state>"
- " </parallel>"
- " <state id=\"join_state\">"
- " <transition event=\"d\" target=\"final_state\"/>"
- " </state>"
- " <final id=\"final_state\"/>"
- "</scxml>";
-
- std::string msg;
-
- uscxml::Interpreter scxml = uscxml::Interpreter::fromXML(scxmlContent, "");
- scxml.addMonitor(new StateTransitionMonitor());
-
- uscxml::InterpreterState state;
- // assume initial stable configuration
- do { state = scxml.step(); } while(state > 0);
-
- while(state != uscxml::USCXML_FINISHED && !messageQueue.empty())
- {
- msg = messageQueue.front();
- messageQueue.pop_front();
-
- scxml.receive(uscxml::Event(msg, uscxml::Event::EXTERNAL));
-
- // step to next stable configuration
- do { state = scxml.step(); } while(state > 0);
-
- }
-
- return EXIT_SUCCESS;
+ std::deque<std::string> messageQueue;
+ messageQueue.push_back("a");
+ messageQueue.push_back("b");
+ messageQueue.push_back("c");
+ messageQueue.push_back("d");
+
+ const char* scxmlContent =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<scxml xmlns=\"http://www.w3.org/2005/07/scxml\" version=\"1.0\" initial=\"initial_state\">"
+ " <state id=\"initial_state\">"
+ " <transition event=\"a\" target=\"parallel_state\"/>"
+ " </state>"
+ " <parallel id=\"parallel_state\">"
+ " <transition event=\"done.state.parallel_state\" target=\"join_state\"/>"
+ " <state id=\"p1out\" initial=\"p1\">"
+ " <state id=\"p1\">"
+ " <transition event=\"b\" target=\"p11\"/>"
+ " </state>"
+ " <final id=\"p11\"/>"
+ " </state>"
+ " <state id=\"p2out\" initial=\"p2\">"
+ " <state id=\"p2\">"
+ " <transition event=\"c\" target=\"p21\"/>"
+ " </state>"
+ " <final id=\"p21\"/>"
+ " </state>"
+ " </parallel>"
+ " <state id=\"join_state\">"
+ " <transition event=\"d\" target=\"final_state\"/>"
+ " </state>"
+ " <final id=\"final_state\"/>"
+ "</scxml>";
+
+ std::string msg;
+
+ uscxml::Interpreter scxml = uscxml::Interpreter::fromXML(scxmlContent, "");
+ scxml.addMonitor(new StateTransitionMonitor());
+
+ uscxml::InterpreterState state;
+ // assume initial stable configuration
+ do {
+ state = scxml.step();
+ } while(state > 0);
+
+ while(state != uscxml::USCXML_FINISHED && !messageQueue.empty()) {
+ msg = messageQueue.front();
+ messageQueue.pop_front();
+
+ scxml.receive(uscxml::Event(msg, uscxml::Event::EXTERNAL));
+
+ // step to next stable configuration
+ do {
+ state = scxml.step();
+ } while(state > 0);
+
+ }
+
+ return EXIT_SUCCESS;
} \ No newline at end of file