| #------------------------------ |
| # Unit test executable |
| #------------------------------ |
| |
| set(MINIZIP_INCLUDE_DIR "${CASS_SRC_DIR}/third_party/minizip") |
| set(MINIZIP_SOURCE_FILES ${MINIZIP_INCLUDE_DIR}/zip.c) # Zip functionality is not built into the driver |
| |
| set(HTTP_PARSER_INCLUDE_DIR "${CASS_ROOT_DIR}/src/third_party/http-parser") |
| |
| # The unit tests use `test::Utils::msleep()` and this is the minimum include |
| # and source files required to shared that code. |
| set(INTEGRATION_TESTS_SOURCE_DIR ${CASS_ROOT_DIR}/tests/src/integration) |
| set(INTEGRATION_TESTS_CCM_SOURCE_DIR ${INTEGRATION_TESTS_SOURCE_DIR}/ccm) |
| set(INTEGRATION_TESTS_SOURCE_FILES ${INTEGRATION_TESTS_SOURCE_DIR}/test_utils.cpp) |
| set(INTEGRATION_TESTS_CCM_SOURCE_FILES "${INTEGRATION_TESTS_CCM_SOURCE_DIR}/tsocket.cpp") |
| file(GLOB UNIT_TESTS_INCLUDE_FILES *.hpp) |
| file(GLOB UNIT_TESTS_SOURCE_FILES *.cpp) |
| file(GLOB UNIT_TESTS_TESTS_SOURCE_FILES tests/*.cpp) |
| |
| source_group("Header Files" FILES ${UNIT_TESTS_INCLUDE_FILES}) |
| source_group("Source Files" FILES ${UNIT_TESTS_SOURCE_FILES}) |
| source_group("Source Files\\tests" FILES ${UNIT_TESTS_TESTS_SOURCE_FILES}) |
| |
| add_executable(cassandra-unit-tests |
| ${MINIZIP_SOURCE_FILES} |
| ${UNIT_TESTS_SOURCE_FILES} |
| ${UNIT_TESTS_TESTS_SOURCE_FILES} |
| ${INTEGRATION_TESTS_SOURCE_FILES} |
| ${INTEGRATION_TESTS_CCM_SOURCE_FILES} |
| ${CPP_DRIVER_SOURCE_FILES} |
| ${UNIT_TESTS_INCLUDE_FILES} |
| ${CASS_API_HEADER_FILES} |
| ${CPP_DRIVER_INCLUDE_FILES} |
| ${CPP_DRIVER_HEADER_SOURCE_FILES} |
| ${CPP_DRIVER_HEADER_SOURCE_ATOMIC_FILES} |
| ${GOOGLE_TEST_HEADER_FILES} |
| ${GOOGLE_TEST_SOURCE_FILES}) |
| |
| target_include_directories(cassandra-unit-tests PRIVATE |
| ${CMAKE_CURRENT_SOURCE_DIR} |
| ${CASS_INCLUDES} |
| ${MINIZIP_INCLUDE_DIR} |
| ${HTTP_PARSER_INCLUDE_DIR} |
| ${INTEGRATION_TESTS_SOURCE_DIR} |
| ${INTEGRATION_TESTS_CCM_SOURCE_DIR}) |
| |
| target_link_libraries(cassandra-unit-tests |
| ${CASS_LIBS} |
| ${PROJECT_LIB_NAME_TARGET}) |
| |
| set_target_properties(cassandra-unit-tests PROPERTIES |
| ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} |
| LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} |
| RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) |
| |
| set_target_properties(cassandra-unit-tests PROPERTIES |
| PROJECT_LABEL "Unit Tests" |
| FOLDER "Tests") |
| |
| # Add the unit tests to be executed by ctest (see CMake BUILD_TESTING) |
| add_test("Unit Tests" cassandra-unit-tests COMMAND cassandra-unit-tests) |
| |
| set_tests_properties("Unit Tests" PROPERTIES TIMEOUT 5) |