Spec-Zone.ru › CMake 3.29

WILL_FAIL

Если true, инвертирует критерии прохождения/непрохождения теста. Тесты, для которых WILL_FAIL равно true, завершаются с кодом возврата 0 и считаются пройденными с ненулевым кодом возврата. Тесты, которые превышают указанный в TIMEOUT таймаут, по-прежнему считаются не пройденными независимо от WILL_FAIL. Ошибки на уровне системы, включая сегментационные нарушения, прерывания сигналов или ошибки кучи, могут привести к тому, что тест будет посчитан не пройденным, даже если WILL_FAIL имеет значение true.

Пример теста, который обычно проходит, но считается не пройденным, потому что WILL_FAIL имеет значение true.

add_test(NAME failed COMMAND ${CMAKE_COMMAND} -E true)
set_property(TEST failed PROPERTY WILL_FAIL true)

Чтобы запустить тест, который может иметь ошибку на уровне системы, но всё же считаться пройденным, если WILL_FAIL установлено, используйте команду CMake для обертывания запуска исполняемого файла. Обратите внимание, что это предотвратит автоматическую обработку целевого свойства CROSSCOMPILING_EMULATOR и TEST_LAUNCHER.

add_executable(main main.c)

add_test(NAME sigabrt COMMAND ${CMAKE_COMMAND} -E env $<TARGET_FILE:main>)

set_property(TEST sigabrt PROPERTY WILL_FAIL TRUE)
#include <signal.h>

int main(void){ raise(SIGABRT); return 0; }

© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/prop_test/WILL_FAIL.html

Spec-Zone.ru

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