Spec-Zone.ru › CMake

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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_test/SKIP_REGULAR_EXPRESSION.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API