From b2e2b2654724b21ffc72a4ee4b632041b011829a Mon Sep 17 00:00:00 2001 From: lijincheng Date: Sat, 9 Mar 2024 11:29:08 +0800 Subject: [PATCH] test Issue:https://gitee.com/openharmony/commonlibrary_c_utils/issues/I973C8 Signed-off-by: lijincheng --- base/include/safe_map.h | 10 +++++++++- .../unittest/common/utils_safe_map_test.cpp | 18 +++++++++--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/base/include/safe_map.h b/base/include/safe_map.h index 213a023..cf01000 100644 --- a/base/include/safe_map.h +++ b/base/include/safe_map.h @@ -45,11 +45,19 @@ public: return *this; } - V& operator[](const K& key) + V ReadVal(const K& key) { + std::lock_guard lock(mutex_); return map_[key]; } + template + void ChangeValueByLambda(const K& key, LambdaCallback callback) + { + std::lock_guard lock(mutex_); + callback(map_[key]); + } + /** * @brief Obtains the map size. * diff --git a/base/test/unittest/common/utils_safe_map_test.cpp b/base/test/unittest/common/utils_safe_map_test.cpp index a06b2ba..0b90909 100644 --- a/base/test/unittest/common/utils_safe_map_test.cpp +++ b/base/test/unittest/common/utils_safe_map_test.cpp @@ -63,19 +63,19 @@ HWTEST_F(UtilsSafeMap, testUtilsoperator001, TestSize.Level0) demoData.Insert("A", 1); ASSERT_FALSE(demoData.IsEmpty()); ASSERT_EQ(demoData.Size(), 1); - ASSERT_EQ(demoData["A"], 1); + ASSERT_EQ(demoData.ReadVal("A"), 1); SafeMap newdemo = demoData; - ASSERT_EQ(newdemo["A"], 1); + ASSERT_EQ(newdemo.ReadVal("A"), 1); int tar = -1; - newdemo["B"] = 6; + newdemo.Insert("B", 6); ASSERT_TRUE(newdemo.Find("B", tar)); ASSERT_EQ(6, tar); SafeMap newdemo2; newdemo2 = newdemo; - ASSERT_EQ(newdemo2["A"], 1); + ASSERT_EQ(newdemo2.ReadVal("A"), 1); } /* @@ -216,10 +216,10 @@ HWTEST_F(UtilsSafeMap, testUtilsNormalFeatureIterate001, TestSize.Level0) demoData.Iterate(callback); ASSERT_EQ(demoData.Size(), 4); - ASSERT_EQ(demoData["A"], 2); - ASSERT_EQ(demoData["B"], 3); - ASSERT_EQ(demoData["C"], 4); - ASSERT_EQ(demoData["D"], 5); + ASSERT_EQ(demoData.ReadVal("A"), 2); + ASSERT_EQ(demoData.ReadVal("B"), 3); + ASSERT_EQ(demoData.ReadVal("C"), 4); + ASSERT_EQ(demoData.ReadVal("D"), 5); } /* @@ -261,7 +261,7 @@ HWTEST_F(UtilsSafeMap, testUtilsConcurrentIterate001, TestSize.Level0) } for (int i = 0; i < DATA_NUM - 1; i++) { - ASSERT_EQ(demoData["A" + std::to_string(i)], demoData["A" + std::to_string(i + 1)]); + ASSERT_EQ(demoData.ReadVal("A" + std::to_string(i)), demoData.ReadVal("A" + std::to_string(i + 1))); } }); } -- Gitee