mosquitto/test/apps/ctrl/CMakeLists.txt
2026-05-13 19:38:00 +01:00

91 lines
2.5 KiB
CMake

set(EXCLUDE_LIST " ")
set(PREFIX "apps-")
file(GLOB PY_TEST_FILES ctrl-*.py)
get_test_files(PY_TEST_FILES "${EXCLUDE_LIST}" PY_TEST_NAMES)
add_python_test(PY_TEST_NAMES ${PREFIX} 0 "ctrl-args.py")
add_python_test(PY_TEST_NAMES ${PREFIX} 2 "ctrl-broker.py")
add_python_test(PY_TEST_NAMES ${PREFIX} 2 "ctrl-dynsec.py")
check_for_missing_tests(PY_TEST_NAMES)
function(add_ctrl_shell_test TEST_NAME)
if(NOT WITH_CTRL_SHELL OR NOT EDITLINE_FOUND)
return()
endif()
add_executable(${TEST_NAME}
${TEST_NAME}.cpp
${mosquitto_SOURCE_DIR}/common/json_help.c
$<TARGET_OBJECTS:ctrl_shell>
$<TARGET_OBJECTS:ctrl_shell_mock>
$<TARGET_OBJECTS:libmosquitto_mock>
)
target_compile_definitions(${TEST_NAME} PRIVATE
WITH_CTRL_SHELL
WITH_EDITLINE
)
target_include_directories(${TEST_NAME} PRIVATE
${mosquitto_SOURCE_DIR}
${mosquitto_SOURCE_DIR}/apps/mosquitto_ctrl
${mosquitto_SOURCE_DIR}/common
${mosquitto_SOURCE_DIR}/include
${mosquitto_SOURCE_DIR}/lib
${mosquitto_SOURCE_DIR}/test/mock
${mosquitto_SOURCE_DIR}/test/mock/apps/mosquitto_ctrl
${mosquitto_SOURCE_DIR}/test/mock/lib
)
target_link_libraries(${TEST_NAME} PRIVATE
GTest::gmock_main
editline_mock
pthread_mock
cJSON
libmosquitto_common
)
gtest_discover_tests(${TEST_NAME})
endfunction()
function(add_ctrl_shell_test_real_editline TEST_NAME)
if(NOT WITH_CTRL_SHELL OR NOT EDITLINE_FOUND)
return()
endif()
add_executable(${TEST_NAME}
${TEST_NAME}.cpp
${mosquitto_SOURCE_DIR}/common/json_help.c
$<TARGET_OBJECTS:ctrl_shell>
$<TARGET_OBJECTS:ctrl_shell_mock>
$<TARGET_OBJECTS:libmosquitto_mock>
)
target_compile_definitions(${TEST_NAME} PRIVATE
WITH_CTRL_SHELL
)
target_include_directories(${TEST_NAME} PRIVATE
${mosquitto_SOURCE_DIR}
${mosquitto_SOURCE_DIR}/apps/mosquitto_ctrl
${mosquitto_SOURCE_DIR}/common
${mosquitto_SOURCE_DIR}/include
${mosquitto_SOURCE_DIR}/lib
${mosquitto_SOURCE_DIR}/test/mock
${mosquitto_SOURCE_DIR}/test/mock/apps/mosquitto_ctrl
${mosquitto_SOURCE_DIR}/test/mock/lib
)
target_link_libraries(${TEST_NAME} PRIVATE
LineEditing::LineEditing
GTest::gmock_main
pthread_mock
cjson
libmosquitto_common
)
gtest_discover_tests(${TEST_NAME})
endfunction()
if(WITH_TLS)
add_ctrl_shell_test(ctrl_shell_test)
add_ctrl_shell_test(ctrl_shell_broker_test)
add_ctrl_shell_test_real_editline(ctrl_shell_completion_test)
add_ctrl_shell_test(ctrl_shell_dynsec_test)
add_ctrl_shell_test(ctrl_shell_help_test)
add_ctrl_shell_test(ctrl_shell_options_test)
add_ctrl_shell_test(ctrl_shell_pre_connect_test)
endif()