SKIP_REGULAR_EXPRESSIONΒΆ

New in version 3.16.

If the test output (stderr or stdout) matches this regular expression the test will be marked as skipped, regardless of the process exit code. Tests that exceed the timeout specified by TIMEOUT still fail regardless of SKIP_REGULAR_EXPRESSION. System-level test failures including segmentation faults, signal abort, or heap errors may fail the test even if the regular expression matches.

Example:

add_test(NAME mytest COMMAND ${CMAKE_COMMAND} -E echo "Skipped this test")

set_property(TEST mytest PROPERTY
  SKIP_REGULAR_EXPRESSION "[^a-z]Skip" "SKIP" "Skipped"
)

SKIP_REGULAR_EXPRESSION expects a list of regular expressions.

To run a test that may have a system-level failure, but still skip if SKIP_REGULAR_EXPRESSION matches, use a CMake command to wrap the executable run. Note that this will prevent automatic handling of the CROSSCOMPILING_EMULATOR and TEST_LAUNCHER target property.

add_executable(main main.c)

add_test(NAME sigabrt COMMAND ${CMAKE_COMMAND} -E env $<TARGET_FILE:main>)

set_property(TEST sigabrt PROPERTY SKIP_REGULAR_EXPRESSION "SIGABRT;[aA]bort")
#include <signal.h>

int main(void){ raise(SIGABRT); return 0; }

See also the SKIP_RETURN_CODE, PASS_REGULAR_EXPRESSION, and FAIL_REGULAR_EXPRESSION test properties.