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–2024 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