summaryrefslogtreecommitdiffstats
path: root/test/src/test-w3c.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/test-w3c.cpp')
-rw-r--r--test/src/test-w3c.cpp148
1 files changed, 74 insertions, 74 deletions
diff --git a/test/src/test-w3c.cpp b/test/src/test-w3c.cpp
index 2c2f4da..3de8e4d 100644
--- a/test/src/test-w3c.cpp
+++ b/test/src/test-w3c.cpp
@@ -36,39 +36,39 @@ int retCode = EXIT_FAILURE;
uscxml::Interpreter interpreter;
void printUsageAndExit(const char* progName) {
- // remove path from program name
- std::string progStr(progName);
- if (progStr.find_last_of(PATH_SEPERATOR) != std::string::npos) {
- progStr = progStr.substr(progStr.find_last_of(PATH_SEPERATOR) + 1, progStr.length() - (progStr.find_last_of(PATH_SEPERATOR) + 1));
- }
-
- printf("%s version " USCXML_VERSION " (" CMAKE_BUILD_TYPE " build - " CMAKE_COMPILER_STRING ")\n", progStr.c_str());
- printf("Usage\n");
- printf("\t%s", progStr.c_str());
- printf(" [-f] [-dN] [-bN]");
+ // remove path from program name
+ std::string progStr(progName);
+ if (progStr.find_last_of(PATH_SEPERATOR) != std::string::npos) {
+ progStr = progStr.substr(progStr.find_last_of(PATH_SEPERATOR) + 1, progStr.length() - (progStr.find_last_of(PATH_SEPERATOR) + 1));
+ }
+
+ printf("%s version " USCXML_VERSION " (" CMAKE_BUILD_TYPE " build - " CMAKE_COMPILER_STRING ")\n", progStr.c_str());
+ printf("Usage\n");
+ printf("\t%s", progStr.c_str());
+ printf(" [-f] [-dN] [-bN]");
#ifdef BUILD_AS_PLUGINS
- printf(" [-p pluginPath]");
+ printf(" [-p pluginPath]");
#endif
- printf(" URL");
- printf("\n");
- printf("Options\n");
- printf("\t-f : flatten to SCXML state-machine\n");
- printf("\t-d FACTOR : delay factor\n");
- printf("\t-b ITERATIONS : benchmark with number of runs\n");
- printf("\n");
- exit(1);
+ printf(" URL");
+ printf("\n");
+ printf("Options\n");
+ printf("\t-f : flatten to SCXML state-machine\n");
+ printf("\t-d FACTOR : delay factor\n");
+ printf("\t-b ITERATIONS : benchmark with number of runs\n");
+ printf("\n");
+ exit(1);
}
class W3CStatusMonitor : public uscxml::InterpreterMonitor {
-void beforeCompletion(uscxml::Interpreter tmp) {
- if (interpreter.getConfiguration().size() == 1 && interpreter.isInState("pass")) {
- std::cout << "TEST SUCCEEDED" << std::endl;
- retCode = EXIT_SUCCESS;
- return;
+ void beforeCompletion(uscxml::Interpreter tmp) {
+ if (interpreter.getConfiguration().size() == 1 && interpreter.isInState("pass")) {
+ std::cout << "TEST SUCCEEDED" << std::endl;
+ retCode = EXIT_SUCCESS;
+ return;
+ }
+ std::cout << "TEST FAILED" << std::endl;
}
- std::cout << "TEST FAILED" << std::endl;
-}
};
int main(int argc, char** argv) {
@@ -103,22 +103,22 @@ int main(int argc, char** argv) {
case 'd':
delayFactor = strTo<double>(optarg);
break;
- case 'b':
- benchmarkRuns = strTo<size_t>(optarg);
- break;
+ case 'b':
+ benchmarkRuns = strTo<size_t>(optarg);
+ break;
default:
break;
}
}
-
- const char* envBenchmarkRuns = getenv("USCXML_BENCHMARK_ITERATIONS");
- if (envBenchmarkRuns != NULL) {
- benchmarkRuns = strTo<size_t>(envBenchmarkRuns);
- }
-
+
+ const char* envBenchmarkRuns = getenv("USCXML_BENCHMARK_ITERATIONS");
+ if (envBenchmarkRuns != NULL) {
+ benchmarkRuns = strTo<size_t>(envBenchmarkRuns);
+ }
+
documentURI = argv[optind];
- LOG(INFO) << "Processing " << documentURI << (withFlattening ? " FSM converted" : "") << (delayFactor ? "" : " with delays *= " + toStr(delayFactor)) << (benchmarkRuns > 0 ? " for " + toStr(benchmarkRuns) + " benchmarks" : "");
+ LOG(INFO) << "Processing " << documentURI << (withFlattening ? " FSM converted" : "") << (delayFactor ? "" : " with delays *= " + toStr(delayFactor)) << (benchmarkRuns > 0 ? " for " + toStr(benchmarkRuns) + " benchmarks" : "");
if (withFlattening) {
interpreter = Interpreter::fromURL(documentURI);
Transformer flattener = ChartToFlatSCXML::transform(interpreter);
@@ -127,7 +127,7 @@ int main(int argc, char** argv) {
} else {
interpreter = Interpreter::fromURL(documentURI);
}
-
+
if (delayFactor != 1) {
Arabica::DOM::Document<std::string> document = interpreter.getDocument();
Arabica::DOM::Element<std::string> root = document.getDocumentElement();
@@ -159,53 +159,53 @@ int main(int argc, char** argv) {
}
if (interpreter) {
- W3CStatusMonitor* vm = new W3CStatusMonitor();
- interpreter.addMonitor(vm);
+ W3CStatusMonitor* vm = new W3CStatusMonitor();
+ interpreter.addMonitor(vm);
- if (benchmarkRuns > 0) {
- LOG(INFO) << "Benchmarking " << documentURI << (withFlattening ? " FSM converted" : "") << (delayFactor ? "" : " with delays *= " + toStr(delayFactor));
+ if (benchmarkRuns > 0) {
+ LOG(INFO) << "Benchmarking " << documentURI << (withFlattening ? " FSM converted" : "") << (delayFactor ? "" : " with delays *= " + toStr(delayFactor));
- InterpreterState state = interpreter.getState();
+ InterpreterState state = interpreter.getState();
- double avg = 0;
+ double avg = 0;
#ifdef BUILD_PROFILING
- double avgDm = 0;
- double avgStep = 0;
+ double avgDm = 0;
+ double avgStep = 0;
#endif
- size_t remainingRuns = benchmarkRuns;
- uint64_t start = tthread::chrono::system_clock::now();
-
- while(remainingRuns-- > 0) {
- Timer t;
- t.start();
- for(;;) {
- state = interpreter.step(true);
- if (state == USCXML_FINISHED) {
+ size_t remainingRuns = benchmarkRuns;
+ uint64_t start = tthread::chrono::system_clock::now();
+
+ while(remainingRuns-- > 0) {
+ Timer t;
+ t.start();
+ for(;;) {
+ state = interpreter.step(true);
+ if (state == USCXML_FINISHED) {
#ifdef BUILD_PROFILING
- avgDm += interpreter.getDataModel().timer.elapsed;
- interpreter.getDataModel().timer.reset();
- avgStep += interpreter.timer.elapsed;
+ avgDm += interpreter.getDataModel().timer.elapsed;
+ interpreter.getDataModel().timer.reset();
+ avgStep += interpreter.timer.elapsed;
#endif
- }
- if (state < 0)
- break;
- }
- t.stop();
- avg += t.elapsed;
- interpreter.reset();
- }
- uint64_t totalDuration = tthread::chrono::system_clock::now() - start;
- std::cout << benchmarkRuns << " iterations in " << totalDuration << " ms" << std::endl;
- std::cout << (avg * 1000.0) / (double)benchmarkRuns << " ms on average" << std::endl;
+ }
+ if (state < 0)
+ break;
+ }
+ t.stop();
+ avg += t.elapsed;
+ interpreter.reset();
+ }
+ uint64_t totalDuration = tthread::chrono::system_clock::now() - start;
+ std::cout << benchmarkRuns << " iterations in " << totalDuration << " ms" << std::endl;
+ std::cout << (avg * 1000.0) / (double)benchmarkRuns << " ms on average" << std::endl;
#ifdef BUILD_PROFILING
- std::cout << (avgDm * 1000.0) / (double)benchmarkRuns << " ms in datamodel" << std::endl;
- std::cout << (avgStep * 1000.0) / (double)benchmarkRuns << " ms in microsteps" << std::endl;
+ std::cout << (avgDm * 1000.0) / (double)benchmarkRuns << " ms in datamodel" << std::endl;
+ std::cout << (avgStep * 1000.0) / (double)benchmarkRuns << " ms in microsteps" << std::endl;
#endif
- } else {
- interpreter.start();
- while(interpreter.runOnMainThread(25));
- }
+ } else {
+ interpreter.start();
+ while(interpreter.runOnMainThread(25));
+ }
}
} catch(Event e) {
std::cout << e << std::endl;