init repo.
This commit is contained in:
53
third_party/gflags/cmake/execute_test.cmake
vendored
Normal file
53
third_party/gflags/cmake/execute_test.cmake
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
# ----------------------------------------------------------------------------
|
||||
# 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 ()
|
Reference in New Issue
Block a user