From 1e9031cc064f6980250287641e6b3311af755485 Mon Sep 17 00:00:00 2001 From: liuxu Date: Sat, 30 Nov 2024 09:50:33 +0800 Subject: [PATCH 02/11] UT: del shim_sandbox and change sandbox ops Signed-off-by: liuxu --- test/mocks/sandbox_mock.cc | 26 ++++++++ test/mocks/sandbox_mock.h | 9 +++ test/mocks/sandboxer_sandbox_mock.cc | 35 +++++----- test/mocks/sandboxer_sandbox_mock.h | 13 ++-- test/mocks/shim_sandbox_mock.cc | 72 --------------------- test/mocks/shim_sandbox_mock.h | 43 ------------ test/sandbox/sandbox/CMakeLists.txt | 1 - test/sandbox/sandbox/sandbox_ut.cc | 5 +- test/sandbox/sandbox_manager/CMakeLists.txt | 1 - 9 files changed, 61 insertions(+), 144 deletions(-) delete mode 100644 test/mocks/shim_sandbox_mock.cc delete mode 100644 test/mocks/shim_sandbox_mock.h diff --git a/test/mocks/sandbox_mock.cc b/test/mocks/sandbox_mock.cc index 9db57a93..cce5a1b6 100644 --- a/test/mocks/sandbox_mock.cc +++ b/test/mocks/sandbox_mock.cc @@ -221,4 +221,30 @@ bool Sandbox::Remove(Errors &error) } return true; } + +void Sandbox::LoadSandboxTasks() {} + +auto Sandbox::PrepareContainer(const char *containerId, const char *baseFs, + const oci_runtime_spec *ociSpec, + const char *consoleFifos[]) -> int +{ + return 0; +} + +auto Sandbox::PrepareExec(const char *containerId, const char *execId, + defs_process *processSpec, const char *consoleFifos[]) -> int +{ + return 0; +} + +auto Sandbox::PurgeContainer(const char *containerId) -> int +{ + return 0; +} + +auto Sandbox::PurgeExec(const char *containerId, const char *execId) -> int +{ + return 0; +} + } \ No newline at end of file diff --git a/test/mocks/sandbox_mock.h b/test/mocks/sandbox_mock.h index 98f40ad2..4908bcd9 100644 --- a/test/mocks/sandbox_mock.h +++ b/test/mocks/sandbox_mock.h @@ -58,6 +58,15 @@ public: MOCK_METHOD2(Stop, bool(uint32_t timeoutSecs, Errors &error)); MOCK_METHOD1(Remove, bool(Errors &error)); MOCK_METHOD1(Status, void(runtime::v1::PodSandboxStatus &status)); + + MOCK_METHOD0(LoadSandboxTasks, void()); + MOCK_METHOD4(PrepareContainer, int(const char *containerId, const char *baseFs, + const oci_runtime_spec *ociSpec, + const char *consoleFifos[])); + MOCK_METHOD4(PrepareExec, int(const char *containerId, const char *execId, + defs_process *processSpec, const char *consoleFifos[])); + MOCK_METHOD1(PurgeContainer, int(const char *containerId)); + MOCK_METHOD2(PurgeExec, int(const char *containerId, const char *execId)); }; void MockSandbox_SetMock(MockSandbox *mock); diff --git a/test/mocks/sandboxer_sandbox_mock.cc b/test/mocks/sandboxer_sandbox_mock.cc index cce58842..6ebe2820 100644 --- a/test/mocks/sandboxer_sandbox_mock.cc +++ b/test/mocks/sandboxer_sandbox_mock.cc @@ -33,40 +33,39 @@ void MockSandboxerSandbox_SetMock(MockSandboxerSandbox *mock) void SandboxerSandbox::LoadSandboxTasks() {} -auto SandboxerSandbox::SaveSandboxTasks() -> bool +auto SandboxerSandbox::PrepareContainer(const char *containerId, const char *baseFs, + const oci_runtime_spec *ociSpec, + const char *consoleFifos[]) -> int { if (g_sandboxer_sandbox_mock != nullptr) { - return g_sandboxer_sandbox_mock->SaveSandboxTasks(); + return g_sandboxer_sandbox_mock->PrepareContainer(containerId, baseFs, ociSpec, consoleFifos); } - return true; -} + return 0; +} -auto SandboxerSandbox::AddSandboxTasks(sandbox_task *task) -> bool +auto SandboxerSandbox::PrepareExec(const char *containerId, const char *execId, + defs_process *processSpec, const char *consoleFifos[]) -> int { if (g_sandboxer_sandbox_mock != nullptr) { - return g_sandboxer_sandbox_mock->AddSandboxTasks(task); + return g_sandboxer_sandbox_mock->PrepareExec(containerId, execId, processSpec, consoleFifos); } - return true; -} + return 0; +} -auto SandboxerSandbox::GetAnySandboxTasks() -> std::string +auto SandboxerSandbox::PurgeContainer(const char *containerId) -> int { if (g_sandboxer_sandbox_mock != nullptr) { - return g_sandboxer_sandbox_mock->GetAnySandboxTasks(); + return g_sandboxer_sandbox_mock->PurgeContainer(containerId); } - return std::string("Nothing for sandboxer."); + return 0; } -void SandboxerSandbox::DeleteSandboxTasks(const char *containerId) {} - -auto SandboxerSandbox::AddSandboxTasksProcess(const char *containerId, sandbox_process *processes) -> bool +auto SandboxerSandbox::PurgeExec(const char *containerId, const char *execId) -> int { if (g_sandboxer_sandbox_mock != nullptr) { - return g_sandboxer_sandbox_mock->AddSandboxTasksProcess(containerId, processes); + return g_sandboxer_sandbox_mock->PurgeExec(containerId, execId); } - return true; + return 0; } -void SandboxerSandbox::DeleteSandboxTasksProcess(const char *containerId, const char *execId) {} - } \ No newline at end of file diff --git a/test/mocks/sandboxer_sandbox_mock.h b/test/mocks/sandboxer_sandbox_mock.h index 4f76e5fc..020fe4d6 100644 --- a/test/mocks/sandboxer_sandbox_mock.h +++ b/test/mocks/sandboxer_sandbox_mock.h @@ -28,12 +28,13 @@ public: virtual ~MockSandboxerSandbox() = default; MOCK_METHOD0(LoadSandboxTasks, void()); - MOCK_METHOD0(SaveSandboxTasks, bool()); - MOCK_METHOD1(AddSandboxTasks, bool(sandbox_task *task)); - MOCK_METHOD0(GetAnySandboxTasks, std::string()); - MOCK_METHOD1(DeleteSandboxTasks, void(const char *containerId)); - MOCK_METHOD2(AddSandboxTasksProcess, bool(const char *containerId, sandbox_process *processes)); - MOCK_METHOD2(DeleteSandboxTasksProcess, void(const char *containerId, const char *execId)); + MOCK_METHOD4(PrepareContainer, int(const char *containerId, const char *baseFs, + const oci_runtime_spec *ociSpec, + const char *consoleFifos[])); + MOCK_METHOD4(PrepareExec, int(const char *containerId, const char *execId, + defs_process *processSpec, const char *consoleFifos[])); + MOCK_METHOD1(PurgeContainer, int(const char *containerId)); + MOCK_METHOD2(PurgeExec, int(const char *containerId, const char *execId)); }; void MockSandboxerSandbox_SetMock(MockSandboxerSandbox *mock); diff --git a/test/mocks/shim_sandbox_mock.cc b/test/mocks/shim_sandbox_mock.cc deleted file mode 100644 index ccefb424..00000000 --- a/test/mocks/shim_sandbox_mock.cc +++ /dev/null @@ -1,72 +0,0 @@ -/****************************************************************************** - * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. - * iSulad licensed under the Mulan PSL v2. - * You can use this software according to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - * http://license.coscl.org.cn/MulanPSL2 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR - * PURPOSE. - * See the Mulan PSL v2 for more details. - * Author: liuxu - * Create: 2024-11-21 - * Description: provide sandbox mock - ******************************************************************************/ - -#include -#include "shim_sandbox_mock.h" - -namespace sandbox { -MockShimSandbox *g_shim_sandbox_mock = nullptr; - -ShimSandbox::ShimSandbox(const std::string id, const std::string &rootdir, const std::string &statedir, const std::string name, - const RuntimeInfo info, std::string netMode, std::string netNsPath, const runtime::v1::PodSandboxConfig sandboxConfig, - std::string image):Sandbox(id, rootdir, statedir, name, info, netMode, - netNsPath, sandboxConfig, image) -{ -} - -void MockShimSandbox_SetMock(MockShimSandbox *mock) -{ - g_shim_sandbox_mock = mock; -} - -void ShimSandbox::LoadSandboxTasks() {} - -auto ShimSandbox::SaveSandboxTasks() -> bool -{ - if (g_shim_sandbox_mock != nullptr) { - return g_shim_sandbox_mock->SaveSandboxTasks(); - } - return true; -} - -auto ShimSandbox::AddSandboxTasks(sandbox_task *task) -> bool -{ - if (g_shim_sandbox_mock != nullptr) { - return g_shim_sandbox_mock->AddSandboxTasks(task); - } - return true; -} - -auto ShimSandbox::GetAnySandboxTasks() -> std::string -{ - if (g_shim_sandbox_mock != nullptr) { - return g_shim_sandbox_mock->GetAnySandboxTasks(); - } - return std::string("Nothing for shim."); -} - -void ShimSandbox::DeleteSandboxTasks(const char *containerId) {} - -auto ShimSandbox::AddSandboxTasksProcess(const char *containerId, sandbox_process *processes) -> bool -{ - if (g_shim_sandbox_mock != nullptr) { - return g_shim_sandbox_mock->AddSandboxTasksProcess(containerId, processes); - } - return true; -} - -void ShimSandbox::DeleteSandboxTasksProcess(const char *containerId, const char *execId) {} - -} \ No newline at end of file diff --git a/test/mocks/shim_sandbox_mock.h b/test/mocks/shim_sandbox_mock.h deleted file mode 100644 index 1b16a4cc..00000000 --- a/test/mocks/shim_sandbox_mock.h +++ /dev/null @@ -1,43 +0,0 @@ -/****************************************************************************** - * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. - * iSulad licensed under the Mulan PSL v2. - * You can use this software according to the terms and conditions of the Mulan PSL v2. - * You may obtain a copy of Mulan PSL v2 at: - * http://license.coscl.org.cn/MulanPSL2 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR - * PURPOSE. - * See the Mulan PSL v2 for more details. - * Author: liuxu - * Create: 2024-11-21 - * Description: provide sandbox mock - ******************************************************************************/ - -#ifndef _ISULAD_TEST_MOCKS_SHIM_SANDBOX_MOCK_H -#define _ISULAD_TEST_MOCKS_SHIM_SANDBOX_MOCK_H - -#include -#include "sandbox_mock.h" -#include "shim_sandbox.h" - -namespace sandbox { - -class MockShimSandbox : public MockSandbox { -public: - MockShimSandbox() = default; - virtual ~MockShimSandbox() = default; - - MOCK_METHOD0(LoadSandboxTasks, void()); - MOCK_METHOD0(SaveSandboxTasks, bool()); - MOCK_METHOD1(AddSandboxTasks, bool(sandbox_task *task)); - MOCK_METHOD0(GetAnySandboxTasks, std::string()); - MOCK_METHOD1(DeleteSandboxTasks, void(const char *containerId)); - MOCK_METHOD2(AddSandboxTasksProcess, bool(const char *containerId, sandbox_process *processes)); - MOCK_METHOD2(DeleteSandboxTasksProcess, void(const char *containerId, const char *execId)); -}; - -void MockShimSandbox_SetMock(MockShimSandbox *mock); - -} - -#endif diff --git a/test/sandbox/sandbox/CMakeLists.txt b/test/sandbox/sandbox/CMakeLists.txt index 9ee67033..6dd6c3ee 100644 --- a/test/sandbox/sandbox/CMakeLists.txt +++ b/test/sandbox/sandbox/CMakeLists.txt @@ -16,7 +16,6 @@ add_executable(${EXE} ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox_task.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller_manager.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc - ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim/shim_sandbox.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/id_name_manager.c ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/isulad_config.c ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/sandbox/controller/controller_common.cc diff --git a/test/sandbox/sandbox/sandbox_ut.cc b/test/sandbox/sandbox/sandbox_ut.cc index 192d46ef..dd84d8fb 100644 --- a/test/sandbox/sandbox/sandbox_ut.cc +++ b/test/sandbox/sandbox/sandbox_ut.cc @@ -16,7 +16,6 @@ #include #include "sandbox.h" -#include "shim_sandbox.h" namespace sandbox { @@ -41,7 +40,7 @@ TEST_F(SandboxTest, TestDefaultGetters) std::string name = "test"; RuntimeInfo info = {"runc", "shim", "kuasar"}; - auto sandbox = new ShimSandbox(id, rootdir, statedir, name, info); + auto sandbox = new Sandbox(id, rootdir, statedir, name, info); ASSERT_NE(sandbox, nullptr); ASSERT_EQ(sandbox->IsReady(), false); @@ -67,7 +66,7 @@ TEST_F(SandboxTest, TestGettersAndSetters) std::string statedir = "/test2/statedir"; std::string mode = "host"; - auto sandbox = new ShimSandbox(id, rootdir, statedir); + auto sandbox = new Sandbox(id, rootdir, statedir); ASSERT_NE(sandbox, nullptr); sandbox->SetNetMode(mode); diff --git a/test/sandbox/sandbox_manager/CMakeLists.txt b/test/sandbox/sandbox_manager/CMakeLists.txt index 9254263c..a7dd8c9d 100644 --- a/test/sandbox/sandbox_manager/CMakeLists.txt +++ b/test/sandbox/sandbox_manager/CMakeLists.txt @@ -12,7 +12,6 @@ add_executable(${EXE} ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/read_write_lock.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/transform.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandbox_mock.cc - ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_sandbox_mock.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandboxer_sandbox_mock.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox_manager.cc ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/id_name_manager.c -- 2.23.0