2 # Create tests and testdriver for this module 4 # Usage: MITK_CREATE_MODULE_TESTS( [EXTRA_DRIVER_INIT init_code] ) 6 # EXTRA_DRIVER_INIT is inserted as c++ code in the testdriver and will be executed before each test 9 cmake_parse_arguments(MODULE_TEST
10 "US_MODULE;NO_INIT" "EXTRA_DRIVER_INIT;EXTRA_DRIVER_INCLUDE" "EXTRA_DEPENDS;DEPENDS;PACKAGE_DEPENDS" ${ARGN})
14 include_directories(.)
16 set(TESTDRIVER ${MODULE_NAME}TestDriver)
18 set(MODULE_TEST_EXTRA_DRIVER_INIT
"${MODULE_TEST_EXTRA_DRIVER_INIT}")
21 set(xvfb_run
"xvfb-run" "--auto-servernum")
26 if(MODULE_TEST_US_MODULE)
27 message(WARNING
"The US_MODULE argument is deprecated and should be removed")
30 if(MODULE_TEST_US_MODULE AND MODULE_TEST_NO_INIT)
31 message(WARNING "Conflicting arguments US_MODULE and NO_INIT: NO_INIT wins.")
35 if(MODULE_TEST_NO_INIT)
39 set(MITK_MODULE_NAME_REGEX_MATCH )
40 set(MITK_MODULE_NAME_REGEX_NOT_MATCH )
42 set(_testdriver_file_list ${CMAKE_CURRENT_BINARY_DIR}/testdriver_files.cmake)
43 configure_file(${MITK_CMAKE_DIR}/mitkTestDriverFiles.cmake.in ${_testdriver_file_list} @ONLY)
45 DEPENDS ${MODULE_NAME} ${MODULE_TEST_DEPENDS} ${MODULE_TEST_EXTRA_DEPENDS} MitkTestingHelper
46 PACKAGE_DEPENDS ${MODULE_TEST_PACKAGE_DEPENDS}
47 SUBPROJECTS ${MODULE_SUBPROJECTS}
48 FILES_CMAKE ${_testdriver_file_list}
49 NO_FEATURE_INFO NO_BATCH_FILE ${_no_init})
50 set_property(
TARGET ${EXECUTABLE_TARGET} PROPERTY FOLDER
"${MITK_ROOT_FOLDER}/Modules/Tests")
53 # Now tell
CMake which tests should be run. This is done automatically
54 #
for all tests
in ${KITNAME}_TESTS and ${KITNAME}_IMAGE_TESTS. The IMAGE_TESTS
55 # are run for each image in the TESTIMAGES list. 58 foreach(
test ${MODULE_TESTS} )
59 get_filename_component(TName ${
test} NAME_WE)
60 add_test(
NAME ${TName} COMMAND ${xvfb_run} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} ${TName})
61 # Add labels
for CDash subproject support
62 if(MODULE_SUBPROJECTS)
63 set_property(TEST ${TName} PROPERTY LABELS ${MODULE_SUBPROJECTS} MITK)
67 set(test_env_path ${MITK_RUNTIME_PATH_RELEASE} ${MITK_RUNTIME_PATH_DEBUG} $ENV{PATH})
68 list(REMOVE_DUPLICATES test_env_path)
69 string (REGEX REPLACE
"\;" "\\\;" test_env_path
"${test_env_path}")
70 set_property(TEST ${TName} PROPERTY ENVIRONMENT
"PATH=${test_env_path}" APPEND)
71 set_property(TEST ${TName} PROPERTY SKIP_RETURN_CODE 77)
74 set(TEST_TYPES IMAGE SURFACE POINTSET)
# add other file types here 76 foreach(test_type ${TEST_TYPES})
77 foreach(test_data ${MODULE_TEST${test_type}} ${ADDITIONAL_TEST_${test_type}})
78 if(EXISTS ${test_data})
79 set(TEST_DATA_FULL_PATH ${test_data})
81 # todo: maybe search other paths as well 82 # yes, please in mitk/Testing/Data, too 86 if(EXISTS ${TEST_DATA_FULL_PATH})
87 foreach(
test ${MODULE_${test_type}_TESTS})
88 get_filename_component(TName ${
test} NAME_WE)
89 get_filename_component(DName ${TEST_DATA_FULL_PATH}
NAME)
90 add_test(
NAME ${TName}_${DName} COMMAND ${xvfb_run} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} ${TName} ${TEST_DATA_FULL_PATH})
91 # Add labels
for CDash subproject support
92 if(MODULE_SUBPROJECTS)
93 set_property(TEST ${TName}_${DName} PROPERTY LABELS ${MODULE_SUBPROJECTS} MITK)
95 set_property(TEST ${TName}_${DName} PROPERTY ENVIRONMENT
"PATH=${test_env_path}" APPEND)
96 set_property(TEST ${TName}_${DName} PROPERTY SKIP_RETURN_CODE 77)
99 message("!!!!! No such file: ${TEST_DATA_FULL_PATH} !!!!!
")
mitkFunctionGetLibrarySearchPaths(search_path, intermediate_dir)
MITK_CREATE_MODULE_TESTS()
Follow Up Storage - Class to facilitate loading/accessing structured follow-up data.
static bool in(Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)