summaryrefslogtreecommitdiff
path: root/0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch
diff options
context:
space:
mode:
Diffstat (limited to '0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch')
-rw-r--r--0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch167
1 files changed, 167 insertions, 0 deletions
diff --git a/0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch b/0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch
new file mode 100644
index 0000000..97a3302
--- /dev/null
+++ b/0002-sandbox-adapt-UT-when-del-m_containers-and-m_contain.patch
@@ -0,0 +1,167 @@
+From 415d7dca6175136ca4c1c780f1e512fd363d01c4 Mon Sep 17 00:00:00 2001
+From: liuxu <liuxu156@huawei.com>
+Date: Fri, 3 Nov 2023 14:27:45 +0800
+Subject: [PATCH 02/14] sandbox:adapt UT when del m_containers and
+ m_containersMutex
+
+---
+ .../design/detailed/Sandbox/sandbox_design_zh.md | 16 +---------------
+ test/mocks/sandbox_mock.cc | 11 -----------
+ test/mocks/sandbox_mock.h | 4 ----
+ test/sandbox/sandbox/sandbox_ut.cc | 14 --------------
+ 4 files changed, 1 insertion(+), 44 deletions(-)
+
+diff --git a/docs/design/detailed/Sandbox/sandbox_design_zh.md b/docs/design/detailed/Sandbox/sandbox_design_zh.md
+index 86acd70b..109094cb 100644
+--- a/docs/design/detailed/Sandbox/sandbox_design_zh.md
++++ b/docs/design/detailed/Sandbox/sandbox_design_zh.md
+@@ -99,7 +99,6 @@ auto GetNetworkSettings() -> const std::string &;
+ auto GetCreatedAt() -> uint64_t;
+ auto GetPid() -> uint32_t;
+ auto GetTaskAddress() const -> const std::string &;
+-auto GetContainers() -> std::vector<std::string>;
+
+ // 设置和更新sandbox的变量值
+ void SetNetMode(const std::string &mode);
+@@ -108,9 +107,6 @@ void AddAnnotations(const std::string &key, const std::string &value);
+ void RemoveAnnotations(const std::string &key);
+ void AddLabels(const std::string &key, const std::string &value);
+ void RemoveLabels(const std::string &key);
+-void AddContainer(const std::string &id);
+-void SetConatiners(const std::vector<std::string> &cons);
+-void RemoveContainer(const std::string &id);
+ void UpdateNetworkSettings(const std::string &settingsJson, Errors &error);
+ auto UpdateStatsInfo(const StatsInfo &info) -> StatsInfo;
+ void SetNetworkReady(bool ready);
+@@ -252,16 +248,12 @@ public:
+ auto GetCreatedAt() -> uint64_t;
+ auto GetPid() -> uint32_t;
+ auto GetTaskAddress() const -> const std::string &;
+- auto GetContainers() -> std::vector<std::string>;
+ void SetNetMode(const std::string &mode);
+ void SetController(std::shared_ptr<Controller> controller);
+ void AddAnnotations(const std::string &key, const std::string &value);
+ void RemoveAnnotations(const std::string &key);
+ void AddLabels(const std::string &key, const std::string &value);
+ void RemoveLabels(const std::string &key);
+- void AddContainer(const std::string &id);
+- void SetConatiners(const std::vector<std::string> &cons);
+- void RemoveContainer(const std::string &id);
+ void UpdateNetworkSettings(const std::string &settingsJson, Errors &error);
+ auto UpdateStatsInfo(const StatsInfo &info) -> StatsInfo;
+ void SetNetworkReady(bool ready);
+@@ -347,9 +339,6 @@ private:
+ std::string m_networkMode;
+ bool m_networkReady;
+ std::string m_networkSettings;
+- // container id lists
+- std::vector<std::string> m_containers;
+- RWMutex m_containersMutex;
+ // TOOD: m_sandboxConfig is a protobuf message, it can be converted to json string directly
+ // if save json string directly for sandbox recover, we need to consider hot
+ // upgrade between different CRI versions
+@@ -410,9 +399,7 @@ std::string m_netNsPath;
+ std::string m_networkMode;
+ bool m_networkReady;
+ std::string m_networkSettings;
+-// container id lists
+-std::vector<std::string> m_containers;
+-RWMutex m_containersMutex;
++
+ // TOOD: m_sandboxConfig is a protobuf message, it can be converted to json string directly
+ // if save json string directly for sandbox recover, we need to consider hot
+ // upgrade between different CRI versions
+@@ -430,7 +417,6 @@ std::set<uint32_t> m_vsockPorts;
+
+ 1. m_mutex: 保障并发sandbox的生命周期操作(start, stop, remove)
+ 2. m_stateMutex:保障并发对m_state,m_statsInfo,m_networkSettings的修改与读取
+-3. m_containersMutex:保障对m_containers的并发操作
+
+ ## 4.2 sandbox manage 模块
+
+diff --git a/test/mocks/sandbox_mock.cc b/test/mocks/sandbox_mock.cc
+index ab6c2d60..e5aefdda 100644
+--- a/test/mocks/sandbox_mock.cc
++++ b/test/mocks/sandbox_mock.cc
+@@ -77,14 +77,6 @@ const std::string &Sandbox::GetRuntimeHandle() const
+ return defaultStr;
+ }
+
+-std::vector<std::string> Sandbox::GetContainers()
+-{
+- if (g_sandbox_mock != nullptr) {
+- return g_sandbox_mock->GetContainers();
+- }
+- return defaultVec;
+-}
+-
+ const runtime::v1::PodSandboxConfig & Sandbox::GetSandboxConfig() const
+ {
+ if (g_sandbox_mock != nullptr) {
+@@ -154,9 +146,6 @@ void Sandbox::AddAnnotations(const std::string &key, const std::string &value) {
+ void Sandbox::RemoveAnnotations(const std::string &key) {}
+ void Sandbox::AddLabels(const std::string &key, const std::string &value) {}
+ void Sandbox::RemoveLabels(const std::string &key) {}
+-void Sandbox::AddContainer(const std::string &id) {}
+-void Sandbox::SetConatiners(const std::vector<std::string> &cons) {}
+-void Sandbox::RemoveContainer(const std::string &id) {}
+ void Sandbox::UpdateNetworkSettings(const std::string &settingsJson, Errors &error) {}
+ void Sandbox::PrepareSandboxDirs(Errors &error) {}
+ void Sandbox::CleanupSandboxDirs() {}
+diff --git a/test/mocks/sandbox_mock.h b/test/mocks/sandbox_mock.h
+index 6b46dca6..341042e9 100644
+--- a/test/mocks/sandbox_mock.h
++++ b/test/mocks/sandbox_mock.h
+@@ -31,7 +31,6 @@ public:
+ MOCK_METHOD0(GetName, const std::string & ());
+ MOCK_METHOD0(GetSandboxer, const std::string & ());
+ MOCK_METHOD0(GetRuntimeHandle, const std::string & ());
+- MOCK_METHOD0(GetContainers, std::vector<std::string>());
+ MOCK_METHOD0(GetSandboxConfig, const runtime::v1::PodSandboxConfig &());
+ MOCK_METHOD0(GetMutableSandboxConfig, std::shared_ptr<runtime::v1::PodSandboxConfig>());
+ MOCK_METHOD0(GetRootDir, const std::string & ());
+@@ -46,9 +45,6 @@ public:
+ MOCK_METHOD1(RemoveAnnotations, void(const std::string &key));
+ MOCK_METHOD2(AddLabels, void(const std::string &key, const std::string &value));
+ MOCK_METHOD1(RemoveLabels, void(const std::string &key));
+- MOCK_METHOD1(AddContainer, void(const std::string &id));
+- MOCK_METHOD1(SetConatiners, void(const std::vector<std::string> &cons));
+- MOCK_METHOD1(RemoveContainer, void(const std::string &id));
+ MOCK_METHOD2(UpdateNetworkSettings, void(const std::string &settingsJson, Errors &error));
+ MOCK_METHOD1(UpdateStatsInfo, StatsInfo(const StatsInfo &info));
+ MOCK_METHOD1(SetNetworkReady, void(bool ready));
+diff --git a/test/sandbox/sandbox/sandbox_ut.cc b/test/sandbox/sandbox/sandbox_ut.cc
+index 494fb543..dd84d8fb 100644
+--- a/test/sandbox/sandbox/sandbox_ut.cc
++++ b/test/sandbox/sandbox/sandbox_ut.cc
+@@ -49,7 +49,6 @@ TEST_F(SandboxTest, TestDefaultGetters)
+ ASSERT_STREQ(sandbox->GetRuntime().c_str(), info.runtime.c_str());
+ ASSERT_STREQ(sandbox->GetSandboxer().c_str(), info.sandboxer.c_str());
+ ASSERT_STREQ(sandbox->GetRuntimeHandle().c_str(), info.runtimeHandler.c_str());
+- ASSERT_EQ(sandbox->GetContainers().size(), 0);
+ ASSERT_STREQ(sandbox->GetRootDir().c_str(), sandbox_rootdir.c_str());
+ ASSERT_STREQ(sandbox->GetStateDir().c_str(), sandbox_statedir.c_str());
+ ASSERT_STREQ(sandbox->GetResolvPath().c_str(), (sandbox_rootdir + "/resolv.conf").c_str());
+@@ -85,19 +84,6 @@ TEST_F(SandboxTest, TestGettersAndSetters)
+ sandbox->RemoveLabels("key");
+ EXPECT_TRUE(sandbox->GetSandboxConfig().labels().empty());
+
+- std::string containerId = "container_id";
+- sandbox->AddContainer(containerId);
+- auto Mycontainers = sandbox->GetContainers();
+- auto it = std::find(Mycontainers.begin(), Mycontainers.end(), containerId);
+- EXPECT_NE(Mycontainers.end(), it);
+-
+- sandbox->RemoveContainer(containerId);
+- EXPECT_EQ(sandbox->GetContainers().size(), 0);
+-
+- std::vector<std::string> containers = {"container1", "container2"};
+- sandbox->SetConatiners(containers);
+- EXPECT_EQ(sandbox->GetContainers(), containers);
+-
+ StatsInfo statsInfo = {1234, 100};
+ sandbox->UpdateStatsInfo(statsInfo);
+ EXPECT_EQ(sandbox->GetStatsInfo().timestamp, statsInfo.timestamp);
+--
+2.42.0
+