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/latest/prop_test/SKIP_REGULAR_EXPRESSION.html