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