mirror of
https://github.com/boostorg/redis.git
synced 2026-01-19 04:42:09 +00:00
Updates multiplexer to make requests complete with error_code() rather than error_code(0) Integration tests now use io_context::run_for to run with a timeout and avoid deadlocks Tests now use concrete lambdas where generic ones are not required Tests now use BOOST_TEST with operator== to print values on error Tests now use anonymous namespaces to detect dead code Adds run_coroutine_test and removed start from common.hpp Updates test_reconnect to perform relevant checks Refactors how test_issue_50 launches its coroutines Groups tests in CMake as unit or integration Updates Jamfile tests to contain all unit tests and only unit tests
83 lines
2.6 KiB
CMake
83 lines
2.6 KiB
CMake
|
|
# Common utilities
|
|
add_library(boost_redis_project_options INTERFACE)
|
|
target_link_libraries(boost_redis_project_options INTERFACE boost_redis)
|
|
if (MSVC)
|
|
# C4459: name hides outer scope variable is issued by Asio
|
|
target_compile_options(boost_redis_project_options INTERFACE /bigobj /W4 /WX /wd4459)
|
|
target_compile_definitions(boost_redis_project_options INTERFACE _WIN32_WINNT=0x0601)
|
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
target_compile_options(boost_redis_project_options INTERFACE -Wall -Wextra -Werror)
|
|
endif()
|
|
target_compile_definitions(boost_redis_project_options INTERFACE BOOST_ALLOW_DEPRECATED=1) # we need to still test deprecated fns
|
|
|
|
add_library(boost_redis_src STATIC boost_redis.cpp)
|
|
target_compile_features(boost_redis_src PRIVATE cxx_std_17)
|
|
target_link_libraries(boost_redis_src PRIVATE boost_redis_project_options)
|
|
|
|
# Test utils
|
|
add_library(boost_redis_tests_common STATIC common.cpp)
|
|
target_compile_features(boost_redis_tests_common PRIVATE cxx_std_17)
|
|
target_link_libraries(boost_redis_tests_common PRIVATE boost_redis_project_options)
|
|
|
|
macro(make_test TEST_NAME)
|
|
set(EXE_NAME "boost_redis_${TEST_NAME}")
|
|
add_executable(${EXE_NAME} ${TEST_NAME}.cpp)
|
|
target_link_libraries(${EXE_NAME} PRIVATE
|
|
boost_redis_src
|
|
boost_redis_tests_common
|
|
boost_redis_project_options
|
|
Boost::unit_test_framework
|
|
)
|
|
add_test(${EXE_NAME} ${EXE_NAME})
|
|
endmacro()
|
|
|
|
# Unit tests
|
|
make_test(test_low_level)
|
|
make_test(test_request)
|
|
make_test(test_low_level_sync_sans_io)
|
|
make_test(test_any_adapter)
|
|
|
|
# Tests that require a real Redis server
|
|
make_test(test_conn_quit)
|
|
# TODO: Configure a Redis server with TLS in the CI and reenable this test.
|
|
#make_test(test_conn_tls)
|
|
make_test(test_conn_exec_retry)
|
|
make_test(test_conn_exec_error)
|
|
make_test(test_run)
|
|
make_test(test_conn_check_health)
|
|
make_test(test_conn_exec)
|
|
make_test(test_conn_push)
|
|
make_test(test_conn_reconnect)
|
|
make_test(test_conn_exec_cancel)
|
|
make_test(test_conn_exec_cancel2)
|
|
make_test(test_conn_echo_stress)
|
|
make_test(test_issue_50)
|
|
make_test(test_issue_181)
|
|
make_test(test_conversions)
|
|
|
|
# Coverage
|
|
set(
|
|
COVERAGE_TRACE_COMMAND
|
|
lcov --capture
|
|
-output-file "${PROJECT_BINARY_DIR}/coverage.info"
|
|
--directory "${PROJECT_BINARY_DIR}"
|
|
--include "${PROJECT_SOURCE_DIR}/include/*"
|
|
)
|
|
|
|
set(
|
|
COVERAGE_HTML_COMMAND
|
|
genhtml --legend -f -q
|
|
"${PROJECT_BINARY_DIR}/coverage.info"
|
|
--prefix "${PROJECT_SOURCE_DIR}"
|
|
--output-directory "${PROJECT_BINARY_DIR}/coverage_html"
|
|
)
|
|
|
|
add_custom_target(
|
|
coverage
|
|
COMMAND ${COVERAGE_TRACE_COMMAND}
|
|
COMMAND ${COVERAGE_HTML_COMMAND}
|
|
COMMENT "Generating coverage report"
|
|
VERBATIM
|
|
)
|