diff options
author | Stefan Radomski <github@mintwerk.de> | 2016-11-23 10:43:50 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2016-11-23 10:43:50 (GMT) |
commit | 039c463b89e1351ab97f2f200b8abfc05eb17898 (patch) | |
tree | 96c9e22a0019835102cf3f88d40ceca3ecb25e4c /test/CMakeLists.txt | |
parent | 919c06887c8396d4fb63d8a3e5e506e50a808cad (diff) | |
parent | aa540c457872b1cdd6a28df8d84e767684a9c5aa (diff) | |
download | uscxml-039c463b89e1351ab97f2f200b8abfc05eb17898.zip uscxml-039c463b89e1351ab97f2f200b8abfc05eb17898.tar.gz uscxml-039c463b89e1351ab97f2f200b8abfc05eb17898.tar.bz2 |
Fixed CMakeLists.txt for tests
Diffstat (limited to 'test/CMakeLists.txt')
-rw-r--r-- | test/CMakeLists.txt | 240 |
1 files changed, 121 insertions, 119 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index bf0fbdf..0f263d2 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -12,13 +12,14 @@ set(GHDL_VERSION "0") if (GHDL) execute_process(COMMAND ${GHDL} -v OUTPUT_VARIABLE GHDL_VERSION_OUT) string(REGEX REPLACE "^GHDL " "" GHDL_VERSION_OUT ${GHDL_VERSION_OUT}) - string(REGEX MATCH "^([0-9]+\\.[0-9]+)" GHDL_VERSION ${GHDL_VERSION_OUT}) + string(REGEX MATCH "^([0-9]+\\.[0-9]+)" GHDL_VERSION ${GHDL_VERSION_OUT}) if (${GHDL_VERSION} VERSION_LESS "0.32") message(WARNING "GHDL version 0.32 required - ${GHDL_VERSION} found, not building VHDL tests") + message(WARNING "Try https://github.com/tgingold/ghdl/releases/tag/v0.33") unset(GHDL) - endif() -endif() + endif () +endif () function(USCXML_TEST_COMPILE) set(options BUILD_ONLY) @@ -33,7 +34,7 @@ function(USCXML_TEST_COMPILE) if (NOT ${USCXML_TEST_BUILD_ONLY}) add_test(${USCXML_TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${USCXML_TEST_NAME} ${USCXML_TEST_ARGS}) set_property(TEST ${USCXML_TEST_NAME} PROPERTY LABELS ${USCXML_TEST_LABEL}) - endif() + endif () set_target_properties(${USCXML_TEST_NAME} PROPERTIES FOLDER "Tests") endfunction() @@ -48,16 +49,16 @@ USCXML_TEST_COMPILE(NAME test-snippets LABEL general/test-snippets FILES src/tes USCXML_TEST_COMPILE(BUILD_ONLY NAME test-stress LABEL general/test-stress FILES src/test-stress.cpp) file(GLOB_RECURSE USCXML_WRAPPERS - ${PROJECT_SOURCE_DIR}/src/bindings/swig/wrapped/*.cpp - ${PROJECT_SOURCE_DIR}/src/bindings/swig/wrapped/*.h -) + ${PROJECT_SOURCE_DIR}/src/bindings/swig/wrapped/*.cpp + ${PROJECT_SOURCE_DIR}/src/bindings/swig/wrapped/*.h + ) USCXML_TEST_COMPILE(NAME test-bindings LABEL general/test-bindings FILES ${USCXML_WRAPPERS} src/test-bindings.cpp) if (NOT MSVC) # MSVC does not like to redefine 'protected' USCXML_TEST_COMPILE(NAME test-promela-parser LABEL general/test-promela-parser FILES src/test-promela-parser.cpp) target_link_libraries(test-promela-parser uscxml_transform) -endif() +endif () # the one binary to test for pass / fail final states add_executable(test-state-pass src/test-state-pass.cpp ${GETOPT_FILES}) @@ -70,32 +71,32 @@ set_target_properties(test-gen-c PROPERTIES FOLDER "Tests") # issues file(GLOB_RECURSE USCXML_ISSUES - issues/*.cpp - issues/*.scxml -) -foreach(USCXML_ISSUE ${USCXML_ISSUES} ) + issues/*.cpp + issues/*.scxml + ) +foreach (USCXML_ISSUE ${USCXML_ISSUES}) get_filename_component(ISSUE_NAME ${USCXML_ISSUE} NAME_WE) get_filename_component(ISSUE_TYPE ${USCXML_ISSUE} EXT) if (ISSUE_TYPE STREQUAL ".scxml") add_test(issue/${ISSUE_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-state-pass ${USCXML_ISSUE}) set_property(TEST issue/${ISSUE_NAME} PROPERTY LABELS issue/${ISSUE_NAME}) - else() + else () USCXML_TEST_COMPILE(NAME ${ISSUE_NAME} LABEL issues/${ISSUE_NAME} FILES ${USCXML_ISSUE}) - endif() -endforeach() + endif () +endforeach () # make sure all headers are self-reliant -set (USCXML_PUBLIC_HEADERS - "${PROJECT_SOURCE_DIR}/src/uscxml/uscxml.h" - "${PROJECT_SOURCE_DIR}/src/uscxml/Interpreter.h" -) +set(USCXML_PUBLIC_HEADERS + "${PROJECT_SOURCE_DIR}/src/uscxml/uscxml.h" + "${PROJECT_SOURCE_DIR}/src/uscxml/Interpreter.h" + ) file(GLOB_RECURSE USCXML_HEADERS - ../src/*.h - ../src/*.hpp -) + ../src/*.h + ../src/*.hpp + ) -foreach(USCXML_HEADER ${USCXML_PUBLIC_HEADERS} ) +foreach (USCXML_HEADER ${USCXML_PUBLIC_HEADERS}) # message (STATUS "USCXML_HEADER: ${USCXML_HEADER}") # message (STATUS "USCXML_REL_HEADER: ${USCXML_REL_HEADER}") # message (STATUS "CMAKE_CURRENT_SOURCE_DIR: ${CMAKE_CURRENT_SOURCE_DIR}") @@ -107,7 +108,7 @@ foreach(USCXML_HEADER ${USCXML_PUBLIC_HEADERS} ) FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/headers/${USCXML_REL_HEADER}.cpp ${HEADER_TEST}) add_test(NAME "header/${USCXML_REL_HEADER}" - COMMAND ${CMAKE_COMMAND} + COMMAND ${CMAKE_COMMAND} -DTESTFILE:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/headers/${USCXML_REL_HEADER}.cpp -DCC_BIN:FILEPATH=${CC} -DCXX_BIN:FILEPATH=${CXX} @@ -116,109 +117,110 @@ foreach(USCXML_HEADER ${USCXML_PUBLIC_HEADERS} ) -DCMAKE_BINARY_DIR=${CMAKE_BINARY_DIR} -DPROJECT_BINARY_DIR=${PROJECT_BINARY_DIR} -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - -P ${CMAKE_CURRENT_SOURCE_DIR}/ctest/scripts/run_header_compiles.cmake) + -P ${CMAKE_CURRENT_SOURCE_DIR}/ctest/scripts/run_header_compiles.cmake) set_property(TEST "header/${USCXML_REL_HEADER}" PROPERTY LABELS "header/${USCXML_REL_HEADER}") - -endforeach() + +endforeach () # debugger REST API if (PERL) add_test(NAME "general/test-debug-api" - COMMAND ${PERL} + COMMAND ${PERL} "${PROJECT_SOURCE_DIR}/test/src/test-http-debugger.pl" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/uscxml-browser" WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/test/src - ) + ) set_property(TEST "general/test-debug-api" PROPERTY LABELS "general/test-debug-api") set_tests_properties("general/test-debug-api" PROPERTIES DEPENDS uscxml-browser) - -endif() + +endif () # declare W3C tests -if (NOT BUILD_MINIMAL) +if (NOT BUILD_MINIMAL) # copy resources file(GLOB_RECURSE W3C_RESOURCES - w3c/*.txt - w3c/*sub*.scxml - ) - - set(TEST_CLASSES - # standard tests generated per datamodel - "namespace" - "ecma" - # "xpath" - "null" - "lua" - "c89" - "promela" - - # generated c source - "gen/c/ecma" - # "gen/c/xpath" - "gen/c/lua" - # "gen/c/promela" - "gen/vhdl/ecma" - - # bindings - "binding/java/jexl" - - # state-machine interpreters - # "fsm/ecma" - # "fsm/xpath" - # "fsm/lua" - # "fsm/promela" - - # formal verification - "spin/promela" - - # performance tests - # "perf/gen/c/ecma" - # "perf/ecma" - ) - + w3c/*.txt + w3c/*sub*.scxml + ) + + set(TEST_CLASSES + # standard tests generated per datamodel + "namespace" + "ecma" + # "xpath" + "null" + "lua" + "c89" + "promela" + + # generated c source + "gen/c/ecma" + # "gen/c/xpath" + "gen/c/lua" + # "gen/c/promela" + "gen/vhdl/ecma" + "gen/vhdl/null" + + # bindings + "binding/java/jexl" + + # state-machine interpreters + # "fsm/ecma" + # "fsm/xpath" + # "fsm/lua" + # "fsm/promela" + + # formal verification + "spin/promela" + + # performance tests + # "perf/gen/c/ecma" + # "perf/ecma" + ) + # prepare directories for test classes and copy resources over - foreach(W3C_RESOURCE ${W3C_RESOURCES} ) + foreach (W3C_RESOURCE ${W3C_RESOURCES}) get_filename_component(TEST_DATAMODEL ${W3C_RESOURCE} PATH) get_filename_component(TEST_DATAMODEL ${TEST_DATAMODEL} NAME) - + # message(STATUS "W3C_RESOURCE: ${W3C_RESOURCE}") # message(STATUS "TEST_DATAMODEL: ${TEST_DATAMODEL}") - - foreach(TEST_CLASS ${TEST_CLASSES}) + + foreach (TEST_CLASS ${TEST_CLASSES}) # datamodel has to be the suffix of the test class if (TEST_CLASS MATCHES ".*/${TEST_DATAMODEL}$") file(COPY ${W3C_RESOURCE} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/${TEST_CLASS}) - endif() - endforeach() - endforeach() + endif () + endforeach () + endforeach () # establish actual tests - foreach(TEST_CLASS ${TEST_CLASSES}) + foreach (TEST_CLASS ${TEST_CLASSES}) get_filename_component(TEST_DATAMODEL ${TEST_CLASS} NAME) get_filename_component(TEST_TYPE ${TEST_CLASS} PATH) # get all respective scxml files into W3C_TESTS file(GLOB_RECURSE W3C_TESTS w3c/${TEST_DATAMODEL}/*.scxml) - + SET(IS_PERFORMANCE_TEST OFF) if (TEST_CLASS MATCHES "^perf/.*") SET(IS_PERFORMANCE_TEST ON) - endif() - + endif () + if (IS_PERFORMANCE_TEST) string(REGEX REPLACE "^perf/?" "" TEST_TYPE ${TEST_TYPE}) - endif() - + endif () + SET(IS_STANDARD_TEST OFF) if ("${TEST_TYPE}" STREQUAL "") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/w3c/${TEST_DATAMODEL}") SET(IS_STANDARD_TEST ON) - endif() - endif() - + endif () + endif () + # normal IRP tests - get all scxml files within - foreach(W3C_TEST ${W3C_TESTS} ) + foreach (W3C_TEST ${W3C_TESTS}) set(TEST_ADDED OFF) get_filename_component(TEST_FILE ${W3C_TEST} NAME) set(TEST_NAME "w3c/${TEST_CLASS}/${TEST_FILE}") @@ -232,19 +234,19 @@ if (NOT BUILD_MINIMAL) else () if (IS_STANDARD_TEST) - + add_test(${TEST_NAME} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-state-pass ${W3C_TEST}) set(TEST_ADDED ON) - + if (TEST_NAME MATCHES ".*/test250.scxml") set_tests_properties(${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION "entering final state, invocation was not cancelled") elseif (TEST_NAME MATCHES ".*/test307.scxml") set_tests_properties(${TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION "error in state") - endif() - + endif () + # more properties for standard tests - - else() + + else () if (TEST_TYPE MATCHES "^gen.*") get_filename_component(TEST_TARGET ${TEST_TYPE} NAME) @@ -252,11 +254,11 @@ if (NOT BUILD_MINIMAL) if (TEST_TARGET MATCHES "vhdl" AND "${GHDL_VERSION}" VERSION_LESS "0.32") # do nothing - else() - + else () + # generate native interpreters add_test(NAME "${TEST_NAME}" - COMMAND ${CMAKE_COMMAND} + COMMAND ${CMAKE_COMMAND} -DOUTDIR:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/${TEST_CLASS} -DTESTFILE:FILEPATH=${W3C_TEST} -DTARGETLANG=${TEST_TARGET} @@ -278,31 +280,31 @@ if (NOT BUILD_MINIMAL) set_tests_properties("${TEST_NAME}" PROPERTIES DEPENDS uscxml-transform) set(TEST_ADDED ON) endif() - endif() + endif () elseif (TEST_TYPE MATCHES "^binding.*") get_filename_component(TEST_LANG ${TEST_TYPE} NAME) if (TARGET jar AND TEST_LANG STREQUAL "java") add_test(NAME "${TEST_NAME}" - COMMAND - ${ANT_EXECUTABLE} + COMMAND + ${ANT_EXECUTABLE} -Dtest.file=${W3C_TEST} -Duscxml.jar=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/uscxml.jar - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/java - ) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bindings/java + ) set_tests_properties("${TEST_NAME}" PROPERTIES DEPENDS jar) set(TEST_ADDED ON) - endif() + endif () elseif (TEST_TYPE MATCHES "^spin.*") if (NOT ${TEST_DATAMODEL} STREQUAL "promela") break() - endif() + endif () add_test(NAME "${TEST_NAME}" - COMMAND ${CMAKE_COMMAND} + COMMAND ${CMAKE_COMMAND} -DOUTDIR:FILEPATH=${CMAKE_CURRENT_BINARY_DIR}/promela -DTESTFILE:FILEPATH=${W3C_TEST} -DUSCXML_TRANSFORM_BIN:FILEPATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/uscxml-transform @@ -312,25 +314,25 @@ if (NOT BUILD_MINIMAL) set_tests_properties("${TEST_NAME}" PROPERTIES PASS_REGULAR_EXPRESSION "depth reached [0-9]+, errors: 0") set_tests_properties("${TEST_NAME}" PROPERTIES FAIL_REGULAR_EXPRESSION "depth reached [0-9]+, errors: [1-9]+") set(TEST_ADDED ON) - + elseif (TEST_TYPE MATCHES "^fsm.*") - + add_test("${TEST_NAME}" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test-state-pass -f ${W3C_TEST}) set(TEST_ADDED ON) - - endif() - endif() - - if(TEST_ADDED) + + endif () + endif () + + if (TEST_ADDED) set_property(TEST ${TEST_NAME} PROPERTY LABELS ${TEST_NAME}) set_tests_properties(${TEST_NAME} PROPERTIES TIMEOUT ${TEST_TIMEOUT}) if (IS_PERFORMANCE_TEST) set_tests_properties("${TEST_NAME}" PROPERTIES ENVIRONMENT USCXML_BENCHMARK_ITERATIONS=${TEST_BENCHMARK_ITERATIONS}) - endif() - endif() - - endif() - endforeach() - endforeach() - -endif()
\ No newline at end of file + endif () + endif () + + endif () + endforeach () + endforeach () + +endif ()
\ No newline at end of file |