SKIP_REGULAR_EXPRESSION
Добавлен в версии 3.16.
Если вывод теста (stderr или stdout) соответствует этому регулярному выражению, тест будет помечен как пропущенный, независимо от кода выхода процесса. Тесты, превысившие время ожидания, указанное свойством TIMEOUT, всё равно завершатся с ошибкой, независимо от SKIP_REGULAR_EXPRESSION. Системные ошибки теста, включая ошибки сегментации, прерывания сигнала или ошибки кучи, могут привести к ошибке теста, даже если регулярное выражение совпадает.
Пример:
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 ожидает список регулярных выражений.
Чтобы запустить тест, который может иметь системную ошибку, но всё равно пропустить, если SKIP_REGULAR_EXPRESSION совпадает, используйте команду CMake для обертывания запускаемого исполняемого файла. Обратите внимание, что это предотвратит автоматическую обработку целевого свойства CROSSCOMPILING_EMULATOR и TEST_LAUNCHER.
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; }
См. также свойства тестов SKIP_RETURN_CODE, PASS_REGULAR_EXPRESSION и FAIL_REGULAR_EXPRESSION.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/prop_test/SKIP_REGULAR_EXPRESSION.html