Commit c94e9bec authored by Andreas Schuh's avatar Andreas Schuh

Add missing execute_test.cmake script.

parent bf918e63
# ----------------------------------------------------------------------------
# sanitize string stored in variable for use in regular expression.
macro (sanitize_for_regex STRVAR)
string (REGEX REPLACE "([.+*?^$()])" "\\\\\\1" ${STRVAR} "${${STRVAR}}")
endmacro ()
# ----------------------------------------------------------------------------
# script arguments
if (NOT COMMAND)
message (FATAL_ERROR "Test command not specified!")
endif ()
if (NOT DEFINED EXPECTED_RC)
set (EXPECTED_RC 0)
endif ()
if (EXPECTED_OUTPUT)
sanitize_for_regex(EXPECTED_OUTPUT)
endif ()
if (UNEXPECTED_OUTPUT)
sanitize_for_regex(UNEXPECTED_OUTPUT)
endif ()
# ----------------------------------------------------------------------------
# set a few environment variables (useful for --tryfromenv)
set (ENV{FLAGS_undefok} "foo,bar")
set (ENV{FLAGS_weirdo} "")
set (ENV{FLAGS_version} "true")
set (ENV{FLAGS_help} "false")
# ----------------------------------------------------------------------------
# execute test command
execute_process(
COMMAND ${COMMAND}
RESULT_VARIABLE RC
OUTPUT_VARIABLE OUTPUT
ERROR_VARIABLE OUTPUT
)
if (OUTPUT)
message ("${OUTPUT}")
endif ()
# ----------------------------------------------------------------------------
# check test result
if (NOT RC EQUAL EXPECTED_RC)
string (REPLACE ";" " " COMMAND "${COMMAND}")
message (FATAL_ERROR "Command:\n\t${COMMAND}\nExit status is ${RC}, expected ${EXPECTED_RC}")
endif ()
if (EXPECTED_OUTPUT AND NOT OUTPUT MATCHES "${EXPECTED_OUTPUT}")
message (FATAL_ERROR "Test output does not match expected output: ${EXPECTED_OUTPUT}")
endif ()
if (UNEXPECTED_OUTPUT AND OUTPUT MATCHES "${UNEXPECTED_OUTPUT}")
message (FATAL_ERROR "Test output matches unexpected output: ${UNEXPECTED_OUTPUT}")
endif ()
\ No newline at end of file
......@@ -76,7 +76,7 @@ macro (add_gflags_test name expected_rc expected_output unexpected_output cmd)
"-DEXPECTED_RC:STRING=${expected_rc}"
"-DEXPECTED_OUTPUT:STRING=${expected_output}"
"-DUNEXPECTED_OUTPUT:STRING=${unexpected_output}"
-P "${CMAKE_CURRENT_LIST_DIR}/execute_test.cmake"
-P "${PROJECT_SOURCE_DIR}/cmake/execute_test.cmake"
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/test"
)
endmacro ()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment