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