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