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()