57 lines
2.1 KiB
CMake
57 lines
2.1 KiB
CMake
if (NOT BUILD_TESTING)
|
|
message("-- unit tests disabled")
|
|
return()
|
|
endif()
|
|
message("-- unit tests enabled")
|
|
|
|
set(APP_TESTS
|
|
authentication
|
|
time_synchronisation
|
|
udp_messages
|
|
udp_pub_to_device
|
|
publishing_messages
|
|
request_reply
|
|
reqrep_redundant_device
|
|
reqrep_connection_reorder_timeout
|
|
reqrep_timeout_concurrency
|
|
register_unregister
|
|
extra_tests
|
|
)
|
|
|
|
find_package(Threads REQUIRED)
|
|
find_package(ZMQ REQUIRED)
|
|
|
|
include("${DI_COMMON_CMAKE_DIR}/libs/gtest.txt")
|
|
include("${DI_COMMON_CMAKE_DIR}/TestReport.txt")
|
|
|
|
di_get_random_port(TCP_PORT)
|
|
di_get_random_port(UDP_PORT)
|
|
di_get_random_port(LOGIF_PORT)
|
|
di_get_random_port(REQREP_PORT)
|
|
di_get_random_port(PUB_PORT)
|
|
di_get_random_port(SUB_PORT)
|
|
|
|
include_directories("${gtest_include_dir}")
|
|
|
|
foreach(test ${APP_TESTS})
|
|
string(REPLACE "/" "_" target ${test})
|
|
|
|
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${test}.cpp")
|
|
add_executable(${target} ${test}.cpp)
|
|
set_source_files_properties("${test}.cpp" PROPERTIES COMPILE_FLAGS -Wno-old-style-cast)
|
|
add_dependencies(${target} dipp dippgtest)
|
|
target_link_libraries(${target} ${PROJECT_APP_NAME}-lib ${libdipp_libraries} zmq ${gtest_library} ${gtest_main_library} ${CMAKE_THREAD_LIBS_INIT})
|
|
add_test(NAME "${target}" COMMAND "${CMAKE_CURRENT_BINARY_DIR}/${target}")
|
|
set_property(TEST "${target}" PROPERTY ENVIRONMENT "TESTNAME=${target}")
|
|
set_tests_properties("${target}" PROPERTIES TIMEOUT 30)
|
|
elseif(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${test}.php")
|
|
set(TEST_FILENAME "/usr/bin/php -d COMMON_PATH=${CMAKE_CURRENT_LIST_DIR}/../common -d TCP_PORT=${TCP_PORT} -d UDP_PORT=${UDP_PORT} -d LOGIF_PORT=${LOGIF_PORT} -d REQREP_PORT=${REQREP_PORT} -d PUB_PORT=${PUB_PORT} -d SUB_PORT=${SUB_PORT} ${CMAKE_CURRENT_SOURCE_DIR}/${test}.php")
|
|
configure_file("test.conf.in" "${CMAKE_CURRENT_BINARY_DIR}/${target}.conf")
|
|
add_test(NAME "${target}" COMMAND "${CMAKE_CURRENT_BINARY_DIR}/../${PROJECT_APP_NAME}" "${CMAKE_CURRENT_BINARY_DIR}/${target}.conf")
|
|
set_tests_properties("${target}" PROPERTIES TIMEOUT 50)
|
|
set_property(TEST "${target}" PROPERTY ENVIRONMENT "TESTNAME=${target}")
|
|
else()
|
|
message(FATAL_ERROR "Not adding test ${test}")
|
|
endif()
|
|
endforeach()
|