summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-12-24 20:10:50 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-12-24 20:10:50 (GMT)
commit1ab8b9a0dcaa131b8cccc735a1794ce39b351715 (patch)
tree40ed4a202ad8ae5fa100981921ae1b57b220c7e8
parent956d81fb50a2717a5b56a9643e87c1db1e2d0661 (diff)
downloaduscxml-1ab8b9a0dcaa131b8cccc735a1794ce39b351715.zip
uscxml-1ab8b9a0dcaa131b8cccc735a1794ce39b351715.tar.gz
uscxml-1ab8b9a0dcaa131b8cccc735a1794ce39b351715.tar.bz2
Added w3c tests for python bindings
-rw-r--r--contrib/python/bindings/test-state-pass.py30
-rw-r--r--test/CMakeLists.txt17
2 files changed, 45 insertions, 2 deletions
diff --git a/contrib/python/bindings/test-state-pass.py b/contrib/python/bindings/test-state-pass.py
new file mode 100644
index 0000000..56aba97
--- /dev/null
+++ b/contrib/python/bindings/test-state-pass.py
@@ -0,0 +1,30 @@
+import sys
+import os.path
+
+
+def main(argv):
+ if not os.path.isfile(argv[1]):
+ sys.exit(os.EX_NOINPUT)
+
+ # where to find uscxmlNativePython.py?
+ if os.path.exists('../../../build/cli/lib'):
+ sys.path.append('../../../build/cli/lib')
+ if os.environ.get('USCXML_PYTHON_PATH') and os.path.exists(os.environ['USCXML_PYTHON_PATH']):
+ sys.path.append(os.environ['USCXML_PYTHON_PATH'])
+
+ import uscxmlNativePython as uscxml
+
+ print "Processing" + argv[1]
+
+ interpreter = uscxml.Interpreter.fromURL(argv[1]);
+ state = interpreter.step()
+ while state != uscxml.USCXML_FINISHED:
+ state = interpreter.step()
+
+ if interpreter.isInState("pass"):
+ sys.exit(os.EX_OK)
+
+ sys.exit(os.EX_OSERR)
+
+if __name__ == "__main__":
+ main(sys.argv)
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index f5eba88..874ed16 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -9,6 +9,7 @@ if (NOT ANT_BIN)
message(STATUS "No ant binary found, not generating Java tests / bindings")
endif()
find_program(PERL_BIN perl)
+find_program(PYTHON_BIN python)
find_program(GHDL_BIN ghdl)
set(GHDL_VERSION "0")
@@ -170,6 +171,7 @@ if (NOT BUILD_MINIMAL)
# bindings
"binding/java/jexl"
+ "binding/python/ecma"
# state-machine interpreters
# "fsm/ecma"
@@ -301,12 +303,23 @@ if (NOT BUILD_MINIMAL)
${ANT_BIN}
-Dtest.file=${W3C_TEST}
-Duscxml.jar=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/uscxml.jar
- WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/contrib/java/bindings
- )
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/contrib/java/bindings)
set_tests_properties("${TEST_NAME}" PROPERTIES DEPENDS jar)
set(TEST_ADDED ON)
endif ()
+ if (PYTHON_BIN AND TEST_LANG STREQUAL "python")
+ add_test(NAME "${TEST_NAME}"
+ COMMAND
+ ${PYTHON_BIN}
+ ${PROJECT_SOURCE_DIR}/contrib/python/bindings/test-state-pass.py
+ ${W3C_TEST}
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/contrib/python/bindings)
+
+ set_tests_properties("${TEST_NAME}" PROPERTIES ENVIRONMENT "USCXML_PYTHON_PATH=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
+ set(TEST_ADDED ON)
+ endif ()
+
elseif (TEST_TYPE MATCHES "^spin.*")
if (NOT ${TEST_DATAMODEL} STREQUAL "promela")