From 577d3208069940153f6ee270ae615eb8ef5cf1a4 Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Thu, 23 Feb 2023 00:40:04 +0800 Subject: [PATCH 1/2] UnitTest use c++14 if Gtest version >= 1.13.0 --- test/CMakeLists.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 82bef6e8..17ffb783 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,14 +18,29 @@ set(memcheck_command ${CMAKE_MEMORYCHECK_COMMAND} ${CMAKE_MEMORYCHECK_COMMAND_OP add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) enable_testing() + +set(CXX_STD "c++11") + find_package(GTest REQUIRED) +get_filename_component(GTEST_PATH ${GTEST_LIBRARY} DIRECTORY) +execute_process(COMMAND grep Version "${GTEST_PATH}/pkgconfig/gtest.pc" + RESULT_VARIABLE GTEST_VERSION_RESULT + OUTPUT_VARIABLE GTEST_VERSION_OUTPUT) +if (${GTEST_VERSION_RESULT} EQUAL "0") + string(REPLACE " " ";" GTEST_VERSION_STR ${GTEST_VERSION_OUTPUT}) + list(GET GTEST_VERSION_STR 1 GTEST_VERSION) + + if (${GTEST_VERSION} VERSION_GREATER_EQUAL "1.13.0") + set(CXX_STD "c++14") + endif () +endif () if (WIN32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP /wd4200") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /wd4200 /std:c++14") else () set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -fPIC -pipe -std=gnu90") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -std=c++11 -fno-exceptions") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -pipe -std=${CXX_STD} -fno-exceptions") endif () set(TEST_LIST From 3e0ff227195c4e20cd4cbeacf9b3361b3342c9db Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Thu, 23 Feb 2023 16:27:27 +0800 Subject: [PATCH 2/2] UnitTest: start a redis server if no local one; skip memory check if valgrind is not found; --- test/CMakeLists.txt | 9 +++++---- test/redis_unittest.cc | 7 +++++++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 17ffb783..62ac9de4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -71,7 +71,8 @@ foreach(src ${TEST_LIST}) add_dependencies(check ${src}) endforeach() -foreach(src ${TEST_LIST}) - add_test(${src}-memory-check ${memcheck_command} ./${src}) -endforeach() - +if (NOT ${CMAKE_MEMORYCHECK_COMMAND} STREQUAL "CMAKE_MEMORYCHECK_COMMAND-NOTFOUND") + foreach(src ${TEST_LIST}) + add_test(${src}-memory-check ${memcheck_command} ./${src}) + endforeach() +endif () diff --git a/test/redis_unittest.cc b/test/redis_unittest.cc index b8bedf8b..3f790101 100644 --- a/test/redis_unittest.cc +++ b/test/redis_unittest.cc @@ -158,6 +158,11 @@ TEST(redis_unittest, WFRedisTask2) std::mutex mutex; std::condition_variable cond; bool done = false; + bool server_started = false; + + WFRedisServer server(__redis_process); + if (server.start("127.0.0.1", 6379) == 0) + server_started = true; test_client("redis://127.0.0.1/6", mutex, cond, done); std::unique_lock lock(mutex); @@ -165,5 +170,7 @@ TEST(redis_unittest, WFRedisTask2) cond.wait(lock); lock.unlock(); + if (server_started) + server.stop(); }