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/latest/prop_test/SKIP_RETURN_CODE.html