SKIP_RETURN_CODE
Код возврата, обозначающий, что тест пропущен.
Иногда только сам тест может определить, выполнены ли все его требования. Если такую ситуацию не следует считать серьезным сбоем, можно указать код возврата процесса, при обнаружении которого тест будет помечен как Not Run. Допустимы значения от 0 до 255 включительно.
Тесты, превысившие время ожидания, указанное в TIMEOUT, по-прежнему завершаются с ошибкой независимо от SKIP_RETURN_CODE. Сбои на уровне системы, включая ошибки сегментации, прерывания по сигналу или ошибки кучи, могут привести к сбою теста, даже если код возврата совпадает.
# cmake (1) defines this to return code 1
add_test(NAME r1 COMMAND ${CMAKE_COMMAND} -E false)
set_tests_properties(r1 PROPERTIES SKIP_RETURN_CODE 1)
Чтобы запустить тест, в котором возможен сбой на уровне системы, но который при совпадении SKIP_RETURN_CODE всё же должен быть пропущен, используйте команду CMake для обёртывания запуска исполняемого файла. Обратите внимание, что это отключит автоматическую обработку свойств целевого объекта CROSSCOMPILING_EMULATOR и TEST_LAUNCHER.
add_executable(main main.c)
# cmake -E env <command> returns 1 if the command fails in any way
add_test(NAME sigabrt COMMAND ${CMAKE_COMMAND} -E env $<TARGET_FILE:main>)
set_property(TEST sigabrt PROPERTY SKIP_RETURN_CODE 1)
#include <signal.h>
int main(void){ raise(SIGABRT); return 0; }
Для обработки нескольких типов случаев, в которых тест может потребоваться пропустить, рассмотрите свойство SKIP_REGULAR_EXPRESSION.
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_test/SKIP_RETURN_CODE.html