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