From 6f37898791ac02ba652984b3518b68d3de5ed98c Mon Sep 17 00:00:00 2001 From: huying Date: Wed, 10 Dec 2025 14:46:32 +0800 Subject: [PATCH] dlock: fix UT issue Signed-off-by: huying --- src/ulock/dlock/lib/server/dlock_server.cpp | 4 +- src/ulock/dlock/lib/server/dlock_server.h | 6 +- test/ulock/dlock/CMakeLists.txt | 2 +- .../ulock/dlock/dlock_test/test_dlock_api.cpp | 116 +++++++----------- .../dlock/dlock_test/test_dlock_comm.cpp | 35 ++---- test/ulock/dlock/dlock_test/test_dlock_comm.h | 10 +- .../dlock/dlock_test/test_dlock_main.cpp | 101 +++++++++++++++ .../dlock/dlock_test/test_dlock_server.cpp | 51 ++------ .../dlock_test/test_dlock_server_mgr.cpp | 1 - .../dlock/dlock_test/test_dlock_utils.cpp | 34 ----- .../dlock/dlock_test/test_ssl_connection.cpp | 27 ++-- test/ulock/dlock/dlock_test/test_urma_ctx.cpp | 21 ++-- test/ulock/dlock/umdk_dlock_UT.sh | 44 ++++++- 13 files changed, 247 insertions(+), 205 deletions(-) create mode 100644 test/ulock/dlock/dlock_test/test_dlock_main.cpp diff --git a/src/ulock/dlock/lib/server/dlock_server.cpp b/src/ulock/dlock/lib/server/dlock_server.cpp index 9b9a3e3..aad3a3c 100644 --- a/src/ulock/dlock/lib/server/dlock_server.cpp +++ b/src/ulock/dlock/lib/server/dlock_server.cpp @@ -162,7 +162,7 @@ void dlock_server::clear_m_client_map(void) void dlock_server::clear_m_jetty_mgr_map(void) { - std::unique_lock locker(m_jetty_mgr_map_rwlock); + std::lock_guard lg(m_jetty_mgr_map_lock); m_jetty_mgr_map.clear(); } @@ -1317,7 +1317,7 @@ int dlock_server::check_recv_cr_status(urma_cr_t *cr, int idx, bool ssl_enable) jetty_mgr *p_jetty_mgr = nullptr; /* cr local_id is jetty/jfs id. */ - std::shared_lock shared_locker(m_jetty_mgr_map_rwlock); + std::lock_guard lg(m_jetty_mgr_map_lock); jetty_mgr_map_t::iterator jetty_mgr_iter = m_jetty_mgr_map.find(cr[idx].local_id); if (jetty_mgr_iter == m_jetty_mgr_map.end()) { DLOCK_LOG_WARN("The jetty_mgr associated with cr does not exist, cr local_id: %u, status: 0x%x.", diff --git a/src/ulock/dlock/lib/server/dlock_server.h b/src/ulock/dlock/lib/server/dlock_server.h index e780572..c5238a4 100644 --- a/src/ulock/dlock/lib/server/dlock_server.h +++ b/src/ulock/dlock/lib/server/dlock_server.h @@ -88,13 +88,13 @@ public: inline void erase_from_m_jetty_mgr_map(uint32_t local_id) { - std::unique_lock locker(m_jetty_mgr_map_rwlock); + std::lock_guard lg(m_jetty_mgr_map_lock); m_jetty_mgr_map.erase(local_id); } inline void add_to_m_jetty_mgr_map(uint32_t local_id, jetty_mgr *p_jetty_mgr) { - std::unique_lock locker(m_jetty_mgr_map_rwlock); + std::lock_guard lg(m_jetty_mgr_map_lock); jetty_mgr_map_t::iterator jetty_mgr_iter = m_jetty_mgr_map.find(local_id); if (jetty_mgr_iter != m_jetty_mgr_map.end()) { /* @@ -241,7 +241,7 @@ private: int m_curr_object_num; jetty_mgr_map_t m_jetty_mgr_map; - std::shared_mutex m_jetty_mgr_map_rwlock; + std::mutex m_jetty_mgr_map_lock; }; }; #endif diff --git a/test/ulock/dlock/CMakeLists.txt b/test/ulock/dlock/CMakeLists.txt index a067848..eb8ce7a 100644 --- a/test/ulock/dlock/CMakeLists.txt +++ b/test/ulock/dlock/CMakeLists.txt @@ -12,7 +12,7 @@ set(CMAKE_CXX_STANDARD 11) # find GTest find_package(GTest REQUIRED) include_directories(${GTEST_INCLUDE_DIRS}) -set(GTEST_LIBRARIES /usr/local/lib64/libgtest.a /usr/local/lib64/libgtest_main.a) +set(GTEST_LIBRARIES /usr/local/lib64/libgtest.a) # find MockCpp set(MOCKCPP_INCLUDE_DIRS /usr/local/include) diff --git a/test/ulock/dlock/dlock_test/test_dlock_api.cpp b/test/ulock/dlock/dlock_test/test_dlock_api.cpp index 1b0c2ef..028ec8b 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_api.cpp +++ b/test/ulock/dlock/dlock_test/test_dlock_api.cpp @@ -42,8 +42,8 @@ static void test_dclient_lib_init(trans_mode_t tp_mode) struct client_cfg cfg_c; cfg_c.dev_name = nullptr; - memset(&cfg_c.eid, 0, sizeof(dlock_eid_t)); - cfg_c.log_level = LOG_WARNING; + memcpy(&cfg_c.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_c.log_level = g_test_dlock_cfg.log_level; cfg_c.tp_mode = tp_mode; cfg_c.ub_token_disable = false; cfg_c.primary_port = PRIMARY1_CONTROL_PORT_CLIENT; @@ -58,18 +58,20 @@ static void test_dclient_lib_init(trans_mode_t tp_mode) ret = dclient_lib_init(nullptr); ASSERT_TRUE(ret == DLOCK_EINVAL) << "p_client_cfg is nullptr, ret: " << ret; + memset(&cfg_c.eid, 0, sizeof(dlock_eid_t)); cfg_c.dev_name = strdup("xxxx"); ret = dclient_lib_init(&cfg_c); free(cfg_c.dev_name); ASSERT_TRUE(ret == -1) << "invalid dev_name, ret: " << ret; + memcpy(&cfg_c.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); cfg_c.dev_name = nullptr; cfg_c.log_level = 10; ret = dclient_lib_init(&cfg_c); ASSERT_TRUE(ret == 0) << "invalid log_level, ret: " << ret; dclient_lib_deinit(); - cfg_c.log_level = LOG_WARNING; + cfg_c.log_level = g_test_dlock_cfg.log_level; cfg_c.primary_port = -1; ret = dclient_lib_init(&cfg_c); ASSERT_TRUE(ret == 0) << "invalid primary_port, ret: " << ret; @@ -85,12 +87,12 @@ static void test_dclient_lib_deinit(trans_mode_t tp_mode) { int ret; struct client_cfg cfg_c; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; cfg_c.dev_name = nullptr; - memset(&cfg_c.eid, 0, sizeof(dlock_eid_t)); - cfg_c.log_level = LOG_WARNING; + memcpy(&cfg_c.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_c.log_level = g_test_dlock_cfg.log_level; cfg_c.tp_mode = tp_mode; cfg_c.ub_token_disable = false; cfg_c.primary_port = PRIMARY1_CONTROL_PORT_CLIENT; @@ -99,7 +101,6 @@ static void test_dclient_lib_deinit(trans_mode_t tp_mode) ASSERT_TRUE(ret == 0) << "dlock client lib init failed, ret: " << ret; ret = client_init(&client_id, server_ip); - free(server_ip); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client init failed, ret: " << ret; dclient_lib_deinit(); @@ -112,7 +113,7 @@ static void test_dclient_lib_deinit(trans_mode_t tp_mode) static void test_client_init_and_deinit(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; char *invalid_ip_str = strdup(INVALID_IP_STR); int client_id = 100; @@ -140,14 +141,13 @@ static void test_client_init_and_deinit(trans_mode_t tp_mode) ASSERT_TRUE(ret == -1) << "client has not been inited, ret: " << ret; dclient_lib_deinit(); - free(server_ip); free(invalid_ip_str); } static void test_client_reinit_and_reinit_done(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; char *invalid_ip_str = strdup(INVALID_IP_STR); int client_id = 100; @@ -184,14 +184,13 @@ static void test_client_reinit_and_reinit_done(trans_mode_t tp_mode) ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); free(invalid_ip_str); } static void test_update_all_locks(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -232,14 +231,12 @@ static void test_update_all_locks(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - - free(server_ip); } static void test_client_heartbeat(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; ret = client_heartbeat(client_id, 5); @@ -273,8 +270,6 @@ static void test_client_heartbeat(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - - free(server_ip); } static void test_lock_limit(int client_id, int lock_num, unsigned int lease_time) @@ -309,7 +304,7 @@ static void test_lock_limit(int client_id, int lock_num, unsigned int lease_time static void test_get_lock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; int client_id2 = 101; @@ -375,13 +370,12 @@ static void test_get_lock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_release_lock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -435,13 +429,12 @@ static void test_release_lock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_trylock_and_lock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -518,13 +511,12 @@ static void test_trylock_and_lock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_unlock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -588,13 +580,12 @@ static void test_unlock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_lock_extend(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -661,13 +652,12 @@ static void test_lock_extend(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_batch_get_lock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; int client_id2 = 101; @@ -756,13 +746,12 @@ static void test_batch_get_lock(trans_mode_t tp_mode) /* test client_id2 exit abnormally */ dclient_lib_deinit(); - free(server_ip); } static void test_batch_release_lock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -873,13 +862,12 @@ static void test_batch_release_lock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_batch_trylock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -984,13 +972,12 @@ static void test_batch_trylock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_batch_unlock(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -1099,13 +1086,12 @@ static void test_batch_unlock(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_batch_lock_extend(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -1223,13 +1209,12 @@ static void test_batch_lock_extend(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_lock_request_async(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -1291,13 +1276,12 @@ static void test_lock_request_async(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_lock_result_check(trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; int client_id = 100; struct timeval tv_start; @@ -1325,7 +1309,6 @@ static void test_lock_result_check(trans_mode_t tp_mode) ret = client_deinit(client_id); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client deinit failed, ret: " << ret; dclient_lib_deinit(); - free(server_ip); } static void test_dserver_lib_init_and_deinit(void) @@ -1352,10 +1335,10 @@ static void test_server_start(void) { int ret; int max_server_num = 2; - char ctrl_cpuset[] = "15-20"; - char cmd_cpuset[] = "20-25"; + char ctrl_cpuset[] = "9"; + char cmd_cpuset[] = "10-11"; char invalid_cpuset[] = "-1"; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; char *invalid_server_ip = strdup("1.1.1"); struct server_cfg primary_cfg_s; struct server_cfg replica_cfg_s; @@ -1364,8 +1347,8 @@ static void test_server_start(void) primary_cfg_s.type = SERVER_PRIMARY; primary_cfg_s.dev_name = nullptr; - str_to_urma_eid(server_ip, &primary_cfg_s.eid); - primary_cfg_s.log_level = LOG_WARNING; + memcpy(&primary_cfg_s.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + primary_cfg_s.log_level = g_test_dlock_cfg.log_level; primary_cfg_s.tp_mode = SEPERATE_CONN; primary_cfg_s.ub_token_disable = false; primary_cfg_s.sleep_mode_enable = true; @@ -1391,6 +1374,8 @@ static void test_server_start(void) ret = server_stop(server_id1); ASSERT_TRUE(ret == 0) << "server stop failed, ret: " << ret; + primary_cfg_s.dev_name = nullptr; + memcpy(&primary_cfg_s.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); primary_cfg_s.type = SERVER_MAX; ret = server_start(primary_cfg_s, server_id1); ASSERT_TRUE(ret == -1) << "invalid server_type, ret: " << ret; @@ -1440,8 +1425,8 @@ static void test_server_start(void) replica_cfg_s.type = SERVER_REPLICA; replica_cfg_s.dev_name = nullptr; - memset(&replica_cfg_s.eid, 0, sizeof(dlock_eid_t)); - replica_cfg_s.log_level = LOG_WARNING; + memcpy(&replica_cfg_s.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + replica_cfg_s.log_level = g_test_dlock_cfg.log_level; replica_cfg_s.tp_mode = SEPERATE_CONN; replica_cfg_s.ub_token_disable = false; replica_cfg_s.sleep_mode_enable = true; @@ -1452,7 +1437,6 @@ static void test_server_start(void) ASSERT_TRUE(ret == -1) << "replica server is not supported, ret: " << ret; dserver_lib_deinit(); - free(server_ip); free(invalid_server_ip); } @@ -2419,7 +2403,7 @@ static void test_server_not_ready(trans_mode_t tp_mode) { int ret; int client_id = 100; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; struct timeval tv_start; char lock_desc_str1[] = "lock desc 1"; @@ -2568,7 +2552,6 @@ static void test_server_not_ready(trans_mode_t tp_mode) dclient_lib_deinit(); stop_primary_server1(); - free(server_ip); } static void test_ssl_basic_process(trans_mode_t tp_mode) @@ -2612,7 +2595,7 @@ static void get_prkey_pwd_invalid(char **prkey_pwd, int *prkey_pwd_len) static void test_client_ssl_cfg(void) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; struct client_cfg cfg_c; int client_id = 100; char *file_path = (char *)malloc(PATH_MAX + 2); @@ -2623,8 +2606,8 @@ static void test_client_ssl_cfg(void) startup_primary_server1(0, 0, false, true, SEPERATE_CONN); cfg_c.dev_name = nullptr; - memset(&cfg_c.eid, 0, sizeof(dlock_eid_t)); - cfg_c.log_level = LOG_WARNING; + memcpy(&cfg_c.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_c.log_level = g_test_dlock_cfg.log_level; cfg_c.tp_mode = SEPERATE_CONN; cfg_c.ub_token_disable = false; cfg_c.primary_port = PRIMARY1_CONTROL_PORT_CLIENT; @@ -2775,7 +2758,6 @@ static void test_client_ssl_cfg(void) stop_primary_server1(); - free(server_ip); free(ca_path); free(cert_path); free(prkey_path); @@ -2786,9 +2768,7 @@ static void test_server_ssl_cfg(void) { int ret; unsigned int max_server_num = 10; - char ctrl_cpuset[] = "15-20"; - char cmd_cpuset[] = "15-20"; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; struct server_cfg cfg_s; int server_id; int client_id = 100; @@ -2803,16 +2783,16 @@ static void test_server_ssl_cfg(void) cfg_s.type = SERVER_PRIMARY; cfg_s.dev_name = nullptr; - memset(&cfg_s.eid, 0, sizeof(dlock_eid_t)); - cfg_s.log_level = LOG_WARNING; + memcpy(&cfg_s.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_s.log_level = g_test_dlock_cfg.log_level; cfg_s.tp_mode = SEPERATE_CONN; cfg_s.ub_token_disable = false; cfg_s.sleep_mode_enable = true; cfg_s.primary.num_of_replica = 0; cfg_s.primary.replica_enable = false; cfg_s.primary.recovery_client_num = 0; - cfg_s.primary.ctrl_cpuset = ctrl_cpuset; - cfg_s.primary.cmd_cpuset = cmd_cpuset; + cfg_s.primary.ctrl_cpuset = nullptr; + cfg_s.primary.cmd_cpuset = nullptr; cfg_s.primary.server_ip_str = server_ip; cfg_s.primary.server_port = PRIMARY1_CONTROL_PORT_CLIENT; @@ -2966,7 +2946,6 @@ static void test_server_ssl_cfg(void) dclient_lib_deinit(); dserver_lib_deinit(); - free(server_ip); free(ca_path); free(cert_path); free(prkey_path); @@ -3046,7 +3025,7 @@ static inline void print_debug_stats(struct debug_stats *stats) int ret = 0; for (int i = 0; i < DEBUG_STATS_MAX; i++) { - ret += sprintf_s((buf + ret), (MAX_BUF - ret), "%d:%ld ", i, stats->stats[i]); + ret += sprintf((buf + ret), "%d:%ld ", i, stats->stats[i]); } DLOCK_LOG_WARN("debug_stats: %s", buf); } @@ -3151,7 +3130,7 @@ protected: { client_id = 100; client_id2 = 101; - server_ip = strdup(PRIMARY_ADDRESS); + server_ip = g_test_dlock_cfg.server_ip; val = 20; struct timeval tv_start; @@ -3165,7 +3144,6 @@ protected: void TearDown() override { - free(server_ip); dclient_lib_deinit(); } }; @@ -3344,7 +3322,7 @@ protected: void SetUp() override { client_id = 100; - server_ip = strdup(PRIMARY_ADDRESS); + server_ip = g_test_dlock_cfg.server_ip; val = 20; struct timeval tv_start; @@ -3358,7 +3336,6 @@ protected: void TearDown() override { - free(server_ip); dclient_lib_deinit(); } }; @@ -3459,7 +3436,7 @@ protected: void SetUp() override { - server_ip = strdup(PRIMARY_ADDRESS); + server_ip = g_test_dlock_cfg.server_ip; client_id = 102; object_id = 0; val = 20; @@ -3473,7 +3450,6 @@ protected: void TearDown() override { - free(server_ip); dclient_lib_deinit(); } }; diff --git a/test/ulock/dlock/dlock_test/test_dlock_comm.cpp b/test/ulock/dlock/dlock_test/test_dlock_comm.cpp index 7bf580f..ea733b0 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_comm.cpp +++ b/test/ulock/dlock/dlock_test/test_dlock_comm.cpp @@ -307,9 +307,9 @@ void default_client_ssl_cfg(struct ssl_cfg &ssl) void construct_primary_cfg(struct server_cfg &cfg_s, struct dlock_primary_cfg param_cfg) { cfg_s.type = SERVER_PRIMARY; - cfg_s.dev_name = nullptr; - memset(&cfg_s.eid, 0, sizeof(dlock_eid_t)); - cfg_s.log_level = LOG_WARNING; + cfg_s.dev_name = g_test_dlock_cfg.dev_name; + memcpy(&cfg_s.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_s.log_level = g_test_dlock_cfg.log_level; cfg_s.tp_mode = param_cfg.tp_mode; cfg_s.ub_token_disable = false; cfg_s.sleep_mode_enable = true; @@ -332,11 +332,9 @@ void startup_primary_server1(unsigned int recovery_client_num, unsigned int num_ { int ret; unsigned int max_server_num = 10; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; struct server_cfg cfg_s; struct dlock_primary_cfg param_cfg; - char ctrl_cpuset[] = "15-20"; - char cmd_cpuset[] = "15-20"; ret = dserver_lib_init(max_server_num); ASSERT_TRUE(ret == 0) << "dlock server lib init failed, ret: " << ret; @@ -347,14 +345,13 @@ void startup_primary_server1(unsigned int recovery_client_num, unsigned int num_ param_cfg.recovery_client_num = recovery_client_num; param_cfg.num_of_replica = num_of_replica; param_cfg.replica_enable = replica_enable; - param_cfg.ctrl_cpuset = ctrl_cpuset; - param_cfg.cmd_cpuset = cmd_cpuset; + param_cfg.ctrl_cpuset = nullptr; + param_cfg.cmd_cpuset = nullptr; construct_primary_cfg(cfg_s, param_cfg); ret = server_start(cfg_s, g_primary_server1_id); ASSERT_TRUE(ret == 0) << "server start failed, ret: " << ret; sleep(1); - free(server_ip); if (ssl_enable) { free(cfg_s.ssl.ca_path); free(cfg_s.ssl.cert_path); @@ -379,9 +376,9 @@ void init_dclient_lib_with_server1(bool ssl_enable, trans_mode_t tp_mode) int ret; struct client_cfg cfg_c; - cfg_c.dev_name = nullptr; - memset(&cfg_c.eid, 0, sizeof(dlock_eid_t)); - cfg_c.log_level = LOG_WARNING; + cfg_c.dev_name = g_test_dlock_cfg.dev_name; + memcpy(&cfg_c.eid, &g_test_dlock_cfg.eid, sizeof(dlock_eid_t)); + cfg_c.log_level = g_test_dlock_cfg.log_level; cfg_c.tp_mode = tp_mode; cfg_c.ub_token_disable = false; cfg_c.primary_port = PRIMARY1_CONTROL_PORT_CLIENT; @@ -403,7 +400,7 @@ void init_dclient_lib_with_server1(bool ssl_enable, trans_mode_t tp_mode) void startup_clients_of_server1(bool ssl_enable, trans_mode_t tp_mode) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; init_dclient_lib_with_server1(ssl_enable, tp_mode); @@ -412,8 +409,6 @@ void startup_clients_of_server1(bool ssl_enable, trans_mode_t tp_mode) ret = client_init(&g_client_id[i], server_ip); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client init failed, ret: " << ret; } - - free(server_ip); } void stop_clients_of_server1(void) @@ -431,13 +426,12 @@ void stop_clients_of_server1(void) void reinit_clients_of_server1(void) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; for (int i = 0; i < CLIENT_NUM; i++) { ret = client_reinit(g_client_id[i], server_ip); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client reinit failed, ret: " << ret; } - free(server_ip); } int update_client_locks(int client_id) @@ -464,7 +458,7 @@ int update_client_locks(int client_id) void recovery_clients_of_server1(void) { int ret; - char *server_ip = strdup(PRIMARY_ADDRESS); + char *server_ip = g_test_dlock_cfg.server_ip; for (int i = 0; i < CLIENT_NUM; i++) { ret = client_reinit(g_client_id[i], server_ip); @@ -480,14 +474,12 @@ void recovery_clients_of_server1(void) ret = client_reinit_done(g_client_id[i]); ASSERT_TRUE(ret == DLOCK_SUCCESS) << "client_reinit_done failed, ret: " << ret; } - - free(server_ip); } void prepare_default_primary_server_cfg(struct server_cfg &cfg_s) { struct dlock_primary_cfg param_cfg = { - .server_ip = strdup(PRIMARY_ADDRESS), + .server_ip = g_test_dlock_cfg.server_ip, .recovery_client_num = 0, .num_of_replica = 0, .replica_enable = false, @@ -501,7 +493,6 @@ void prepare_default_primary_server_cfg(struct server_cfg &cfg_s) void destroy_default_primary_server_cfg(struct server_cfg &cfg_s) { - free(cfg_s.primary.server_ip_str); free(cfg_s.primary.ctrl_cpuset); free(cfg_s.primary.cmd_cpuset); } diff --git a/test/ulock/dlock/dlock_test/test_dlock_comm.h b/test/ulock/dlock/dlock_test/test_dlock_comm.h index a0657c9..8e029bf 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_comm.h +++ b/test/ulock/dlock/dlock_test/test_dlock_comm.h @@ -29,7 +29,6 @@ #include "dlock_server_api.h" #include "dlock_log.h" -#define PRIMARY_ADDRESS "127.0.0.1" #define INVALID_IP_STR "1.1.1.1" #define PRIMARY1_CONTROL_PORT_CLIENT 22000 @@ -67,6 +66,13 @@ extern int g_client_id[CLIENT_NUM]; using namespace dlock; +struct test_dlock_cfg { + char *server_ip; + dlock_eid_t eid; + char *dev_name; + int log_level; +}; + struct dlock_ssl_ca_info { std::string ca_path; std::string ca_prkey_path; @@ -84,6 +90,8 @@ struct dlock_primary_cfg { char *cmd_cpuset; }; +extern struct test_dlock_cfg g_test_dlock_cfg; + int generate_ssl_ca(std::string &pwd, std::string &path, std::string &file_suffix, int days); int generate_ssl_crt(struct dlock_ssl_ca_info &ca_info, std::string &pwd, std::string &path, std::string &file_suffix, int days); int generate_ssl_file(void); diff --git a/test/ulock/dlock/dlock_test/test_dlock_main.cpp b/test/ulock/dlock/dlock_test/test_dlock_main.cpp new file mode 100644 index 0000000..df10d2d --- /dev/null +++ b/test/ulock/dlock/dlock_test/test_dlock_main.cpp @@ -0,0 +1,101 @@ +/* + * SPDX-License-Identifier: MIT + * Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. + * Description: dlock unit test main function + * Author: huying + * Create: 2025-12-09 + * Note: + * History: + */ +#include +#include "gtest/gtest.h" +#include "utils.h" +#include "test_dlock_comm.h" + +#define PRIMARY_ADDRESS "127.0.0.1" + +struct test_dlock_cfg g_test_dlock_cfg = {0}; + +static int test_dlock_parse_args_and_init_cfg(int argc, char *argv[]) +{ + int opt; + char *eid_str = nullptr; + + g_test_dlock_cfg.log_level = LOG_WARNING; + + while ((opt = getopt(argc, argv, "i:e:d:g:")) != -1) { + switch (opt) { + case 'i': + g_test_dlock_cfg.server_ip = strdup(optarg); + break; + case 'e': + eid_str = strdup(optarg); + break; + case 'd': + g_test_dlock_cfg.dev_name = strdup(optarg); + break; + case 'g': + g_test_dlock_cfg.log_level = atoi(optarg); + break; + default: + printf("Usage: %s [-i ] [-e ] [-d ] [-g ]\n", argv[0]); + printf("Options: " + "-i Server IP \n" + "-e EID string \n" + "-d UBEP device name \n" + "-g Log level\n"); + return -1; + } + } + + if (g_test_dlock_cfg.server_ip == nullptr) { + g_test_dlock_cfg.server_ip = strdup(PRIMARY_ADDRESS); + } + + if (eid_str != nullptr) { + if (str_to_urma_eid(eid_str, &g_test_dlock_cfg.eid) != 0) { + printf("Invalid eid: %s\n", eid_str); + free(eid_str); + return -1; + } + free(eid_str); + eid_str = nullptr; + } + + if ((g_test_dlock_cfg.log_level < LOG_EMERG) || (g_test_dlock_cfg.log_level > LOG_DEBUG)) { + printf("Invalid log level: %d\n", g_test_dlock_cfg.log_level); + return -1; + } + + return 0; +} + +static void test_dlock_cfg_deinit(void) +{ + if (g_test_dlock_cfg.server_ip != nullptr) { + free(g_test_dlock_cfg.server_ip); + g_test_dlock_cfg.server_ip = nullptr; + } + + if (g_test_dlock_cfg.dev_name != nullptr) { + free(g_test_dlock_cfg.dev_name); + g_test_dlock_cfg.dev_name = nullptr; + } +} + +int main(int argc, char *argv[]) +{ + ::testing::InitGoogleTest(&argc, argv); + + int ret = test_dlock_parse_args_and_init_cfg(argc, argv); + if (ret != 0) { + printf("Parsing test parameters and initialization failed.\n"); + test_dlock_cfg_deinit(); + return ret; + } + + ret = RUN_ALL_TESTS(); + + test_dlock_cfg_deinit(); + return ret; +} \ No newline at end of file diff --git a/test/ulock/dlock/dlock_test/test_dlock_server.cpp b/test/ulock/dlock/dlock_test/test_dlock_server.cpp index f82cdd5..379bbe1 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_server.cpp +++ b/test/ulock/dlock/dlock_test/test_dlock_server.cpp @@ -64,7 +64,7 @@ protected: void SetUp() { m_server = new(std::nothrow) dlock_server(1); - m_ip_str = strdup(PRIMARY_ADDRESS); + m_ip_str = g_test_dlock_cfg.server_ip; ASSERT_NE(m_server, nullptr); ASSERT_NE(m_ip_str, nullptr); @@ -77,7 +77,6 @@ protected: GlobalMockObject::verify(); delete m_server; - free(m_ip_str); } }; @@ -309,8 +308,7 @@ TEST_F(test_dlock_server, test_init_server_1_server_inited) TEST_F(test_dlock_server, test_init_server_2_lock_memory_init_failed) { - auto mocker_memalign = reinterpret_cast(&memalign); - MOCKER(mocker_memalign).stubs().will(returnValue((void *)nullptr)); + MOCKER(memalign).stubs().will(returnValue((void *)nullptr)); int ret = m_server->init_server(true, m_server_cfg); EXPECT_EQ(ret, static_cast(DLOCK_SERVER_NO_RESOURCE)); @@ -390,8 +388,7 @@ TEST_F(test_dlock_server, test_init_server_12_obj_memory_init_failed) TEST_F(test_dlock_server, test_primary_control_loop_1_control_events_calloc_failed) { - auto mocker_calloc = reinterpret_cast(&calloc); - MOCKER(mocker_calloc).stubs().will(returnValue((void *)nullptr)); + MOCKER(calloc).stubs().will(returnValue((void *)nullptr)); int ret = m_server->primary_control_loop(); EXPECT_EQ(ret, -1); @@ -399,8 +396,7 @@ TEST_F(test_dlock_server, test_primary_control_loop_1_control_events_calloc_fail TEST_F(test_dlock_server, test_primary_control_loop_2_epoll_ctl_failed) { - auto mocker_epoll_ctl = reinterpret_cast(&epoll_ctl); - MOCKER(mocker_epoll_ctl).stubs().will(returnValue(-1)); + MOCKER(epoll_ctl).stubs().will(returnValue(-1)); int ret = m_server->primary_control_loop(); EXPECT_EQ(ret, -1); @@ -408,8 +404,7 @@ TEST_F(test_dlock_server, test_primary_control_loop_2_epoll_ctl_failed) TEST_F(test_dlock_server, test_primary_control_loop_3_epoll_wait_failed) { - auto mocker_epoll_ctl = reinterpret_cast(&epoll_ctl); - MOCKER(mocker_epoll_ctl).stubs().will(returnValue(0)); + MOCKER(epoll_ctl).stubs().will(returnValue(0)); MOCKER(epoll_wait).stubs().will(returnValue(-1)); int ret = m_server->primary_control_loop(); @@ -418,8 +413,7 @@ TEST_F(test_dlock_server, test_primary_control_loop_3_epoll_wait_failed) TEST_F(test_dlock_server, test_primary_control_loop_4_epoll_create_failed) { - auto mocker_epoll_create = reinterpret_cast(&epoll_create); - MOCKER(mocker_epoll_create).stubs().will(returnValue(-1)); + MOCKER(epoll_create).stubs().will(returnValue(-1)); int ret = m_server->primary_control_loop(); EXPECT_EQ(ret, -1); } @@ -459,8 +453,7 @@ TEST_F(test_dlock_server, test_primary_control_func_4_epoll_ctl_failed) int new_sockfd = 10002; MOCKER(accept).stubs().will(returnValue(new_sockfd)); - auto mocker_epoll_ctl = reinterpret_cast(&epoll_ctl); - MOCKER(mocker_epoll_ctl).stubs().will(returnValue(-1)); + MOCKER(epoll_ctl).stubs().will(returnValue(-1)); m_server->m_listen_fd = 10000; int ret = m_server->primary_control_func(10001, 10000); @@ -577,8 +570,7 @@ TEST_F(test_dlock_server, test_get_client_id_max_num_reached) TEST_F(test_create_listen_fd, test_create_socket_failed) { - auto mocker_socket = reinterpret_cast(&socket); - MOCKER(mocker_socket).stubs().will(returnValue(-1)); + MOCKER(socket).stubs().will(returnValue(-1)); int listen_fd; int ret = m_server->create_listen_fd(m_ip_addr, CONTROL_PORT_CLIENT, listen_fd); @@ -587,8 +579,7 @@ TEST_F(test_create_listen_fd, test_create_socket_failed) TEST_F(test_create_listen_fd, test_setsockopt_failed) { - auto mocker_setsockopt = reinterpret_cast(&setsockopt); - MOCKER(mocker_setsockopt).stubs().will(returnValue(-1)); + MOCKER(setsockopt).stubs().will(returnValue(-1)); int listen_fd; int ret = m_server->create_listen_fd(m_ip_addr, CONTROL_PORT_CLIENT, listen_fd); @@ -597,8 +588,7 @@ TEST_F(test_create_listen_fd, test_setsockopt_failed) TEST_F(test_create_listen_fd, test_bind_failed) { - auto mocker_bind = reinterpret_cast(&bind); - MOCKER(mocker_bind).stubs().will(returnValue(-1)); + MOCKER(bind).stubs().will(returnValue(-1)); int listen_fd; int ret = m_server->create_listen_fd(m_ip_addr, CONTROL_PORT_CLIENT, listen_fd); @@ -607,29 +597,13 @@ TEST_F(test_create_listen_fd, test_bind_failed) TEST_F(test_create_listen_fd, test_listen_failed) { - auto mocker_listen = reinterpret_cast(&listen); - MOCKER(mocker_listen).stubs().will(returnValue(-1)); + MOCKER(listen).stubs().will(returnValue(-1)); int listen_fd; int ret = m_server->create_listen_fd(m_ip_addr, CONTROL_PORT_CLIENT, listen_fd); EXPECT_EQ(ret, -1); } -TEST(test_set_random_seed, test_read_entropy_pool_failed) -{ - dlock_server *p_server = new(std::nothrow) dlock_server(1); - ASSERT_NE(p_server, nullptr); - - MOCKER_CPP(&dlock_server::read_entropy_pool, dlock_status_t (*)(dlock_server *, int, uint8_t *, int)) - .stubs().will(returnValue(DLOCK_FAIL)); - - int ret = p_server->set_random_seed(); - EXPECT_EQ(ret, DLOCK_FAIL); - - GlobalMockObject::verify(); - delete p_server; -} - TEST_F(test_init_as_primary, test_set_random_seed_failed) { MOCKER_CPP(&dlock_server::set_random_seed, dlock_status_t (*)(dlock_server *)) @@ -861,8 +835,7 @@ TEST_F(test_recv_msg, test_recv_msg_hdr_3_recv_len_error) TEST_F(test_recv_msg, test_recv_msg_ext_hdr_and_body_1_malloc_buff_failed) { - auto mocker_malloc = reinterpret_cast(malloc); - MOCKER(mocker_malloc).stubs().with(eq(DLOCK_CLIENT_INIT_REQ_BODY_LEN)).will(returnValue((void *)nullptr)); + MOCKER(malloc).stubs().with(eq(DLOCK_CLIENT_INIT_REQ_BODY_LEN)).will(returnValue((void *)nullptr)); uint8_t *msg_ext_hdr = nullptr; uint8_t *msg_body = nullptr; diff --git a/test/ulock/dlock/dlock_test/test_dlock_server_mgr.cpp b/test/ulock/dlock/dlock_test/test_dlock_server_mgr.cpp index e66ec37..866d035 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_server_mgr.cpp +++ b/test/ulock/dlock/dlock_test/test_dlock_server_mgr.cpp @@ -39,7 +39,6 @@ protected: GlobalMockObject::verify(); dserver_lib_deinit(); - free(m_cfg_s.primary.server_ip_str); free(m_cfg_s.primary.ctrl_cpuset); free(m_cfg_s.primary.cmd_cpuset); } diff --git a/test/ulock/dlock/dlock_test/test_dlock_utils.cpp b/test/ulock/dlock/dlock_test/test_dlock_utils.cpp index a0d2910..c8d83e0 100644 --- a/test/ulock/dlock/dlock_test/test_dlock_utils.cpp +++ b/test/ulock/dlock/dlock_test/test_dlock_utils.cpp @@ -150,18 +150,6 @@ TEST(test_set_send_recv_timeout, test_set_SO_SNDTIMEO_failed) GlobalMockObject::verify(); } -TEST(test_set_send_recv_timeout, test_set_SO_RCVTIMEO_failed) -{ - MOCKER(setsockopt).stubs().will(returnValue(0)).then(returnValue(-1)); - - int sockfd = 123456; - int timeout_second = 5; - int ret = set_send_recv_timeout(sockfd, timeout_second); - EXPECT_EQ(ret, -1); - - GlobalMockObject::verify(); -} - TEST(test_set_primary_keepalive, test_set_SO_KEEPALIVE_failed) { MOCKER(setsockopt).stubs().will(returnValue(-1)); @@ -173,28 +161,6 @@ TEST(test_set_primary_keepalive, test_set_SO_KEEPALIVE_failed) GlobalMockObject::verify(); } -TEST(test_set_primary_keepalive, test_set_TCP_KEEPIDLE_failed) -{ - MOCKER(setsockopt).stubs().will(returnValue(0)).then(returnValue(-1)); - - int sockfd = 123456; - int ret = set_primary_keepalive(sockfd); - EXPECT_EQ(ret, -1); - - GlobalMockObject::verify(); -} - -TEST(test_set_primary_keepalive, test_set_TCP_KEEPINTVL_failed) -{ - MOCKER(setsockopt).stubs().will(repeat(0, 2)).then(returnValue(-1)); - - int sockfd = 123456; - int ret = set_primary_keepalive(sockfd); - EXPECT_EQ(ret, -1); - - GlobalMockObject::verify(); -} - TEST(test_set_primary_keepalive, test_set_TCP_KEEPCNT_failed) { MOCKER(setsockopt).stubs().will(repeat(0, 3)).then(returnValue(-1)); diff --git a/test/ulock/dlock/dlock_test/test_ssl_connection.cpp b/test/ulock/dlock/dlock_test/test_ssl_connection.cpp index 7c7c293..54009bd 100644 --- a/test/ulock/dlock/dlock_test/test_ssl_connection.cpp +++ b/test/ulock/dlock/dlock_test/test_ssl_connection.cpp @@ -143,15 +143,6 @@ TEST_F(test_ssl_init, test_OpenSSL_add_all_algorithms_failed) EXPECT_EQ(ret, -1); } -TEST_F(test_ssl_init, test_SSL_load_error_strings_failed) -{ - // SSL_load_error_strings -> OPENSSL_init_ssl - MOCKER(OPENSSL_init_ssl).stubs().will(returnValue(1)).then(returnValue(0)); - - int ret = m_conn->ssl_init(true, m_ssl_init_attr); - EXPECT_EQ(ret, -1); -} - TEST_F(test_ssl_init, test_SSL_CTX_new_failed) { MOCKER(SSL_CTX_new).stubs().will(returnValue((SSL_CTX *)nullptr)); @@ -169,14 +160,6 @@ TEST_F(test_ssl_init, test_SSL_CTX_set_min_proto_version_failed) EXPECT_EQ(ret, -1); } -TEST_F(test_ssl_init, test_SSL_CTX_set_ciphersuites_failed) -{ - MOCKER(SSL_CTX_set_ciphersuites).stubs().will(returnValue(1)).then(returnValue(0)); - - int ret = m_conn->ssl_init(true, m_ssl_init_attr); - EXPECT_EQ(ret, -1); -} - TEST_F(test_ssl_init, test_SSL_CTX_load_verify_locations_failed) { MOCKER(SSL_CTX_load_verify_locations).stubs().will(returnValue(0)); @@ -319,8 +302,13 @@ TEST_F(test_recv, test_blocking_SSL_ERROR_ZERO_RETURN) TEST_F(test_recv, test_blocking_ssl_r_unexpected_eof_while_reading) { +#if ((OPENSSL_VERSION_NUMBER >= 0x30000000L) || (OPENSSL_VERSION_NUMBER == 0x1010105fL)) + MOCKER(SSL_get_error).stubs().will(returnValue(SSL_ERROR_SSL)); + MOCKER(ERR_peek_last_error).stubs().will(returnValue((unsigned long)SSL_R_UNEXPECTED_EOF_WHILE_READING)); +#else MOCKER(SSL_get_error).stubs().will(returnValue(SSL_ERROR_SYSCALL)); MOCKER(ERR_peek_last_error).stubs().will(returnValue((unsigned long)0)); +#endif ssize_t ret = m_conn->recv(m_buff, m_recv_len, 0); EXPECT_EQ(ret, 0); @@ -354,8 +342,13 @@ TEST_F(test_recv, test_non_blocking_SSL_ERROR_ZERO_RETURN) TEST_F(test_recv, test_non_blocking_ssl_r_unexpected_eof_while_reading) { +#if ((OPENSSL_VERSION_NUMBER >= 0x30000000L) || (OPENSSL_VERSION_NUMBER == 0x1010105fL)) + MOCKER(SSL_get_error).stubs().will(returnValue(SSL_ERROR_SSL)); + MOCKER(ERR_peek_last_error).stubs().will(returnValue((unsigned long)SSL_R_UNEXPECTED_EOF_WHILE_READING)); +#else MOCKER(SSL_get_error).stubs().will(returnValue(SSL_ERROR_SYSCALL)); MOCKER(ERR_peek_last_error).stubs().will(returnValue((unsigned long)0)); +#endif ssize_t ret = m_conn->recv(m_buff, m_recv_len, MSG_DONTWAIT); EXPECT_EQ(ret, 0); diff --git a/test/ulock/dlock/dlock_test/test_urma_ctx.cpp b/test/ulock/dlock/dlock_test/test_urma_ctx.cpp index 24cd4c9..b6e9dba 100644 --- a/test/ulock/dlock/dlock_test/test_urma_ctx.cpp +++ b/test/ulock/dlock/dlock_test/test_urma_ctx.cpp @@ -68,14 +68,6 @@ TEST_F(test_urma_ctx, test_create_ctx_2_malloc_failed) EXPECT_EQ(ret, DLOCK_ENOMEM); } -TEST_F(test_urma_ctx, test_create_ctx_3_strcpy_failed) -{ - MOCKER(strcpy).stubs().will(returnValue(-1)); - - dlock_status_t ret = m_urma_ctx->create_ctx(); - EXPECT_EQ(ret, DLOCK_FAIL); -} - TEST_F(test_urma_ctx, test_create_ctx_4_urma_get_device_by_name_failed) { MOCKER(urma_get_device_by_name).stubs().will(returnValue((urma_device_t *)nullptr)); @@ -88,8 +80,11 @@ TEST_F(test_urma_ctx, test_create_ctx_5_urma_create_context_failed) { MOCKER(urma_create_context).stubs().will(returnValue((urma_context_t *)nullptr)); + urma_context_t *temp_urma_ctx = m_urma_ctx->m_urma_ctx; dlock_status_t ret = m_urma_ctx->create_ctx(); EXPECT_EQ(ret, DLOCK_FAIL); + + m_urma_ctx->m_urma_ctx = temp_urma_ctx; } TEST_F(test_urma_ctx, test_query_urma_device_1_by_eid_succ) @@ -121,7 +116,7 @@ TEST_F(test_urma_ctx, test_query_urma_device_3_by_dev_name_succ) MOCKER_CPP(&urma_ctx::check_urma_device_state, dlock_status_t (*)(urma_ctx *, char *)) .stubs().will(returnValue(DLOCK_SUCCESS)); - char *dev_name = strdup("mlx5_1"); + char *dev_name = strdup("udma1"); const dlock_eid_t eid = {0}; dlock_status_t ret = m_urma_ctx->query_urma_device(dev_name, eid); EXPECT_EQ(ret, DLOCK_SUCCESS); @@ -133,7 +128,7 @@ TEST_F(test_urma_ctx, test_query_urma_device_4_by_dev_name_failed) MOCKER_CPP(&urma_ctx::check_urma_device_state, dlock_status_t (*)(urma_ctx *, char *)) .stubs().will(returnValue(DLOCK_FAIL)); - char *dev_name = strdup("mlx5_1"); + char *dev_name = strdup("udma1"); const dlock_eid_t eid = {0}; dlock_status_t ret = m_urma_ctx->query_urma_device(dev_name, eid); EXPECT_EQ(ret, DLOCK_FAIL); @@ -208,7 +203,7 @@ static urma_status_t urma_query_device_stub(urma_device_t *dev, urma_device_attr TEST_F(test_urma_ctx, test_check_urma_device_state_by_eid_3_urma_query_device_succ) { - std::string dev_name = "mlx5_1"; + std::string dev_name = "udma1"; urma_device_t temp_dev; (void)memset(&temp_dev, 0, sizeof(urma_device_t)); snprintf(temp_dev.name, URMA_MAX_NAME, "%s", dev_name.c_str()); @@ -252,7 +247,7 @@ TEST_F(test_urma_ctx, test_check_urma_device_state_1_get_urma_eid_index_failed) dlock_status_t (*)(urma_ctx *, urma_device_t *, urma_eid_t *, uint32_t &)) .stubs().will(returnValue(DLOCK_FAIL)); - char *dev_name = strdup("mlx5_1"); + char *dev_name = strdup("udma1"); dlock_status_t ret = m_urma_ctx->check_urma_device_state(dev_name); EXPECT_EQ(ret, DLOCK_FAIL); @@ -269,7 +264,7 @@ TEST_F(test_urma_ctx, test_check_urma_device_state_2_urma_query_device_failed) urma_eid_t *, uint32_t &)).stubs().will(invoke(get_urma_eid_index_stub)); MOCKER(urma_query_device).stubs().will(returnValue(URMA_FAIL)); - char *dev_name = strdup("mlx5_1"); + char *dev_name = strdup("udma1"); dlock_status_t ret = m_urma_ctx->check_urma_device_state(dev_name); EXPECT_EQ(ret, DLOCK_FAIL); diff --git a/test/ulock/dlock/umdk_dlock_UT.sh b/test/ulock/dlock/umdk_dlock_UT.sh index ecef82f..6b85131 100644 --- a/test/ulock/dlock/umdk_dlock_UT.sh +++ b/test/ulock/dlock/umdk_dlock_UT.sh @@ -2,9 +2,49 @@ # SPDX-License-Identifier: MIT # Copyright (c) Huawei Technologies Co., Ltd. 2020-2025. All rights reserved. +set -euo pipefail set -e SCRIPT_PATH=$(cd $(dirname $0);pwd) +SERVER_IP_ADDR="" +EID="" +LOG_LEVEL=4 # LOG_WARNING + +OPTIONS=":i:e:g:" + +while getopts $OPTIONS opt; do + case $opt in + i) + SERVER_IP_ADDR=$OPTARG + ;; + e) + EID=$OPTARG + ;; + g) + LOG_LEVEL=$OPTARG + ;; + :) + echo "ERROR: option $OPTARG requires a parameter." >&2 + exit 1 + ;; + \?) + echo "ERROR: invalid option $OPTARG" >&2 + exit 1 + ;; + esac +done + +# server_ip and eid are required parameters +if [ -z "$SERVER_IP_ADDR" ] || [ -z "$EID" ]; then + echo "Usage: sh umdk_dlock_UT.sh -i -e [-g ]" + exit 1 +fi + +echo "Configuration:" +echo "server_ip: $SERVER_IP_ADDR" +echo "eid: $EID" +echo "log_level: $LOG_LEVEL" + # compile DLock code cd $SCRIPT_PATH/../../../src if [ -d ./build ]; then @@ -34,10 +74,10 @@ make -j VERBOSE=1 echo "Running tests..." REPORT_DIR=$(pwd)/reports mkdir -p ${REPORT_DIR} -./dlock_ut_gtest --gtest_output="xml:${REPORT_DIR}/report.xml" +./dlock_ut_gtest --gtest_output="xml:${REPORT_DIR}/report.xml" -i $SERVER_IP_ADDR -e $EID -g $LOG_LEVEL echo "Generating coverage report..." -cd $SCRIPT_PATH/../../../src/ulock/dlock/build/lib/dlock +cd $SCRIPT_PATH/../../../src/build/ulock/dlock/ lcov --capture --directory . --output-file coverage.info --rc lcov_branch_coverage=1 lcov --remove coverage.info '*c++/*' '*gtest/*' '*/tests/*' '*mockcpp/*' --output-file filtered.info --rc lcov_branch_coverage=1 genhtml filtered.info --output-directory lcov_report --rc lcov_branch_coverage=1 -- Gitee