Spec-Zone.ru › CMake 3.29

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API