blob: 8dc0d472ce27076addbd4528f7ba5f944ef4ae23 [file]
#------------------------------
# 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)