Some checks failed
android / build (arm64-v8a) (push) Failing after 20s
android / build (armeabi-v7a) (push) Failing after 22s
android / build (x86) (push) Failing after 19s
android / build (x86_64) (push) Failing after 20s
linux-aarch64-cpu-gcc / linux-gcc-aarch64 (Debug) (push) Failing after 5m31s
linux-aarch64-cpu-gcc / linux-gcc-aarch64 (Release) (push) Has been cancelled
linux-arm-gcc / linux-gcc-arm (Debug) (push) Has been cancelled
linux-arm-gcc / linux-gcc-arm (Release) (push) Has been cancelled
linux-arm-gcc / linux-gcc-armhf (Debug) (push) Has been cancelled
linux-arm-gcc / linux-gcc-armhf (Release) (push) Has been cancelled
linux-mips-gcc / linux-gcc-mipsel (Debug) (push) Has been cancelled
linux-mips-gcc / linux-gcc-mipsel (Release) (push) Has been cancelled
linux-mips64-gcc / linux-gcc-mips64el (Debug) (push) Has been cancelled
linux-mips64-gcc / linux-gcc-mips64el (Release) (push) Has been cancelled
linux-riscv64-gcc / linux-gcc-riscv64 (Debug) (push) Has been cancelled
linux-riscv64-gcc / linux-gcc-riscv64 (Release) (push) Has been cancelled
linux-x64-clang / linux-clang (Debug) (push) Has been cancelled
linux-x64-clang / linux-clang (Release) (push) Has been cancelled
linux-x64-gcc / linux-gcc (Release) (push) Has been cancelled
linux-x64-gcc / linux-gcc (Debug) (push) Has been cancelled
linux-x86-gcc / linux-gcc (Debug) (push) Failing after 3m36s
linux-x86-gcc / linux-gcc (Release) (push) Failing after 4m11s
53 lines
1.7 KiB
CMake
53 lines
1.7 KiB
CMake
# ----------------------------------------------------------------------------
|
|
# 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 () |