Непрерывный тайм-аут с использованием ctest

Я указываю тест в моем CMakeLists.txt, который запускает исполняемый файл и должен искать определенный вывод (PASS_REGULAR_EXPRESSION) определить успех.

Поскольку бинарный файл не завершает сам себя, я также хотел бы завершить исполняемый файл после некоторого TIMEOUT,

Тест должен пройти, если мой PASS_REGULAR_EXPRESSION происходит до TIMEOUTв противном случае он должен потерпеть неудачу.

Мой CMakeLists.txt выглядит ложью:

add_test(NAME sometest COMMAND my_binary)
set_tests_properties(sometest PROPERTIES 
                     PASS_REGULAR_EXPRESSION "All systems go[.]"
                     TIMEOUT 10) 

К сожалению, имея TIMEOUT всегда помечает тест как неудачный. Можно ли указать исправное время ожидания?

1 ответ

Я просто искал решение подобной проблемы и нашел его в списке рассылки CMake :

CMakeLists.txt:

      add_test(NAME mytest 
         COMMAND ${CMAKE_COMMAND} -DMYEXE=${PATH_TO_MYEXE} -DARG_TIMEOUT -P ${CMAKE_CURRENT_LIST_DIR}/ExecuteTest.cmake)

ExecuteTest.cmake:

      execute_process(COMMAND ${PATH_TO_MYEXE}
                TIMEOUT ${ARG_TIMEOUT}
                OUTPUT_VARIABLE output)

if(NOT output MATCHES "^my_desired_regex$")
  message(FATAL_ERROR "myexe did not produce desired output")
endif()
Другие вопросы по тегам