49 "EXECUTABLE_ARGSPASS_FILEPASS_REGULAR_EXPRESSIONFAIL_REGULAR_EXPRESSIONPASS_FILE_OUTPUTTEST_SUFFIXPROJECT_NAME" # possible lists #PASS_FILE -> compare the
std output to a ref file # PASS_FILE_OUTPUT -> compare two files given as parameters
54 math(EXPR CAMITK_TEST_ID
"${CAMITK_TEST_ID} + 1")
55 set(CAMITK_TEST_NAME
"${CAMITK_TEST_BASENAME}${CAMITK_ADD_TEST_TEST_SUFFIX}${CAMITK_TEST_ID}")
56 set(CAMITK_TEST_LIST ${CAMITK_TEST_LIST} ${CAMITK_TEST_NAME})
57 # message(STATUS
"Configuring test ${CAMITK_TEST_NAME}")
59 #CAMITK_INSTALL_PREFIX is camitk/src/sdk directory ...
60 set(CAMITK_INSTALL_PREFIX ${SDK_TOP_LEVEL_SOURCE_DIR})
62 # create test output directory
63 set(CAMITK_TEST_OUTPUT_DIR
"${CMAKE_BINARY_DIR}/Testing/Temporary/${CAMITK_TEST_NAME}")
64 # message(STATUS "Creating test output dir ${CAMITK_TEST_OUTPUT_DIR}")
65 execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CAMITK_TEST_OUTPUT_DIR})
66 # check which test is to be done
67 if(CAMITK_ADD_TEST_PASS_FILE)
68 add_test(NAME ${CAMITK_TEST_NAME}
69 COMMAND ${CMAKE_COMMAND}
70 -DCAMITK_TEST_COMMAND=${CAMITK_INIT_TEST_EXECUTABLE}
71 -DCAMITK_TEST_COMMAND_ARG=${CAMITK_ADD_TEST_EXECUTABLE_ARGS}
72 -DCAMITK_TEST_PASS_FILE=${CAMITK_ADD_TEST_PASS_FILE}
73 -DCAMITK_TEST_OUTPUT_DIR=${CAMITK_TEST_OUTPUT_DIR}
74 -DCAMITK_TEST_NAME=${CAMITK_TEST_NAME}
75 -P ${CAMITK_INSTALL_PREFIX}/cmake/modules/macros/CamiTKTestPassFile.cmake
77 elseif(CAMITK_ADD_TEST_PASS_FILE_OUTPUT)
78 add_test(NAME ${CAMITK_TEST_NAME}
79 COMMAND ${CMAKE_COMMAND}
80 -DCAMITK_TEST_COMMAND=${CAMITK_INIT_TEST_EXECUTABLE}
81 -DCAMITK_TEST_COMMAND_ARG=${CAMITK_ADD_TEST_EXECUTABLE_ARGS}
82 -DCAMITK_TEST_PASS_FILE=${CAMITK_ADD_TEST_PASS_FILE_OUTPUT}
83 -DCAMITK_TEST_OUTPUT_DIR=${CAMITK_TEST_OUTPUT_DIR}
84 -DCAMITK_TEST_NAME=${CAMITK_TEST_NAME}
85 -P ${CAMITK_INSTALL_PREFIX}/cmake/modules/macros/CamiTKTestCompareFile.cmake
88 # set output files for more advanced checking/debugging
89 set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) # which command is run to test the exectable
91 execute_process(COMMAND ${CMAKE_COMMAND} -E
remove -f ${CAMITK_TEST_COMMAND_FILE} )
92 file(WRITE ${CAMITK_TEST_COMMAND_FILE}
"Test command: ${CAMITK_INIT_TEST_EXECUTABLE} ${CAMITK_ADD_TEST_EXECUTABLE_ARGS}\nPASS_REGULAR_EXPRESSION: '${CAMITK_ADD_TEST_PASS_REGULAR_EXPRESSION}'\n")
94 if(CAMITK_ADD_TEST_EXECUTABLE_ARGS)
95 # expands all arguments
96 string(REPLACE
" " "" CAMITK_TEST_COMMAND_ARG_LIST ${CAMITK_ADD_TEST_EXECUTABLE_ARGS})
98 set(CAMITK_TEST_COMMAND_ARG_LIST)
101 # add the simple test command
102 add_test(NAME ${CAMITK_TEST_NAME}
103 COMMAND ${CAMITK_INIT_TEST_EXECUTABLE} ${CAMITK_TEST_COMMAND_ARG_LIST}
106 # add properties
if needed
107 if(CAMITK_ADD_TEST_PASS_REGULAR_EXPRESSION)
108 set_tests_properties(${CAMITK_TEST_NAME} PROPERTIES PASS_REGULAR_EXPRESSION ${CAMITK_ADD_TEST_PASS_REGULAR_EXPRESSION})
110 if(CAMITK_ADD_TEST_FAIL_REGULAR_EXPRESSION)
111 set_tests_properties(${CAMITK_TEST_NAME} PROPERTIES FAIL_REGULAR_EXPRESSION ${CAMITK_ADD_TEST_FAIL_REGULAR_EXPRESSION})
116 # set the label for tests
117 if( CAMITK_ADD_TEST_PROJECT_NAME )
118 set_tests_properties( ${CAMITK_TEST_NAME} PROPERTIES LABELS ${CAMITK_ADD_TEST_PROJECT_NAME} )#associate tests to a project name in CDash
120 set_tests_properties( ${CAMITK_TEST_NAME} PROPERTIES LABELS ${CAMITK_TEST_BASENAME} )
test result execute_process(COMMAND ${CMAKE_COMMAND}-E remove-f ${CAMITK_TEST_COMMAND_FILE}${CAMITK_TEST_COMMAND_RESULT_FILE}${CAMITK_TEST_COMMAND_OUTPUT_FILE}${CAMITK_TEST_PASS_FILE_COMMAND_FILE}${CAMITK_TEST_PASS_FILE_OUTPUT_FILE}${CAMITK_TEST_PASS_FILE_RESULT_FILE}) file(WRITE $
Definition: CamiTKTestPassFile.h:19
parse_arguments()
macro parse_arguments is a fork from CMakeMacroParseArguments see http://www.cmake.org/Wiki/CMakeMacroParseArguments for more information
Definition: ParseArguments.h:13
set(CAMITK_TEST_COMMAND_FILE ${CAMITK_TEST_OUTPUT_DIR}/command) set(CAMITK_TEST_COMMAND_RESULT_FILE $
This CMake file run a command and put the output in a given file.
Definition: CamiTKTestPassFile.h:11
camitk_add_test()
camitk_add_test is a macro to add a new test to the CTest infrastructure It encapsulates CMake add_te...
Definition: CamiTKAddTest.h:47