diff options
Diffstat (limited to '0182-fix-error-macro-isolation-memory-leak-and-meanless-r.patch')
-rw-r--r-- | 0182-fix-error-macro-isolation-memory-leak-and-meanless-r.patch | 262 |
1 files changed, 262 insertions, 0 deletions
diff --git a/0182-fix-error-macro-isolation-memory-leak-and-meanless-r.patch b/0182-fix-error-macro-isolation-memory-leak-and-meanless-r.patch new file mode 100644 index 0000000..752c17f --- /dev/null +++ b/0182-fix-error-macro-isolation-memory-leak-and-meanless-r.patch @@ -0,0 +1,262 @@ +From 98ae352fb43f3bf5aa1ac1ea2d3d6cee61cf856e Mon Sep 17 00:00:00 2001 +From: zhongtao <zhongtao17@huawei.com> +Date: Mon, 20 Jan 2025 22:44:56 +0800 +Subject: [PATCH 182/198] fix error macro isolation/ memory leak and meanless + reply file in sandbox ut + +Signed-off-by: zhongtao <zhongtao17@huawei.com> +--- + test/sandbox/CMakeLists.txt | 2 +- + test/sandbox/controller/CMakeLists.txt | 7 ++++-- + .../manager/controller_manager_ut.cc | 17 +++++++------- + .../sandboxer_controller_ut.cc | 1 + + .../controller/shim/shim_controller_ut.cc | 3 +++ + test/sandbox/sandbox/CMakeLists.txt | 22 ++++++++++++++----- + test/sandbox/sandbox_manager/CMakeLists.txt | 12 ++++++++-- + .../sandbox_manager/sandbox_manager_ut.cc | 2 ++ + 8 files changed, 48 insertions(+), 18 deletions(-) + +diff --git a/test/sandbox/CMakeLists.txt b/test/sandbox/CMakeLists.txt +index 38d7ccb9..1a9fedf6 100644 +--- a/test/sandbox/CMakeLists.txt ++++ b/test/sandbox/CMakeLists.txt +@@ -1,6 +1,6 @@ + project(iSulad_UT) + +-if (ENABLE_SANDBOXER) ++if (ENABLE_CRI_API_V1) + add_subdirectory(controller) + add_subdirectory(sandbox_manager) + add_subdirectory(sandbox) +diff --git a/test/sandbox/controller/CMakeLists.txt b/test/sandbox/controller/CMakeLists.txt +index d201872b..4273c2bd 100644 +--- a/test/sandbox/controller/CMakeLists.txt ++++ b/test/sandbox/controller/CMakeLists.txt +@@ -2,6 +2,9 @@ project(iSulad_UT) + + list(APPEND grpc_sandbox_type_srcs ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc) + list(APPEND grpc_sandbox_type_srcs ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc) +-add_subdirectory(sandboxer) +-add_subdirectory(manager) ++ ++if (ENABLE_SANDBOXER) ++ add_subdirectory(sandboxer) ++ add_subdirectory(manager) ++endif() + add_subdirectory(shim) +diff --git a/test/sandbox/controller/manager/controller_manager_ut.cc b/test/sandbox/controller/manager/controller_manager_ut.cc +index 705baaca..c60f8818 100644 +--- a/test/sandbox/controller/manager/controller_manager_ut.cc ++++ b/test/sandbox/controller/manager/controller_manager_ut.cc +@@ -16,12 +16,13 @@ + #include <memory> + #include "gtest/gtest.h" + #include "sandboxer_controller.h" +-#include "grpc_sandboxer_client_mock.h" + #include "controller_manager.h" + #include "controller_common.h" + #include "utils.h" + #include "isulad_config_mock.h" + #include "shim_controller.h" ++#include "controller.h" ++#include "grpc_sandboxer_client_mock.h" + + class ControllerManagerWrapper : public sandbox::ControllerManager { + public: +@@ -81,7 +82,7 @@ TEST_F(ControllerManagerTest, InitTestSucceed) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); + EXPECT_TRUE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_TRUE(err.Empty()); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + FreeDummyServerconf(args); + } +@@ -96,7 +97,7 @@ TEST_F(ControllerManagerTest, InitTestSucceedWithEmptyConfig) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); + EXPECT_TRUE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_TRUE(err.Empty()); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + FreeDummyServerconf(args); + } +@@ -111,7 +112,7 @@ TEST_F(ControllerManagerTest, InitTestFailedWithEmptySandboxerConfig) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); + EXPECT_FALSE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("Failed to load sandboxer controllers config")); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + FreeDummyServerconf(args); + } +@@ -126,7 +127,7 @@ TEST_F(ControllerManagerTest, InitTestSucceedWithNullConfig) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); + EXPECT_TRUE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_TRUE(err.Empty()); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + FreeDummyServerconf(args); + } +@@ -142,7 +143,7 @@ TEST_F(ControllerManagerTest, InitTestFailedWithDupShimConfig) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); + EXPECT_FALSE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("Sandboxer controller already registered, sandboxer:")); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + FreeDummyServerconf(args); + } + +@@ -191,7 +192,7 @@ TEST_F(ControllerManagerTest, InitTestFailedWithDupInit) + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(2).WillRepeatedly(testing::Return(args)); + EXPECT_TRUE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_TRUE(err.Empty()); +- EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_NE(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + EXPECT_FALSE(ControllerManagerWrapper::GetInstance()->Init(err)); + EXPECT_THAT(err.GetCMessage(), testing::HasSubstr("Sandboxer controller already registered,")); +@@ -211,6 +212,6 @@ TEST_F(ControllerManagerTest, InitTestFailedWithNullConf) + TEST_F(ControllerManagerTest, FindControllerTestFailedBeforeInit) + { + Errors err; +- EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController(SHIM_CONTROLLER_NAME), nullptr); ++ EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController(sandbox::SHIM_CONTROLLER_NAME), nullptr); + EXPECT_EQ(ControllerManagerWrapper::GetInstance()->GetController("vmm"), nullptr); + } +diff --git a/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc b/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc +index 726464e8..d31d5b95 100644 +--- a/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc ++++ b/test/sandbox/controller/sandboxer/sandboxer_controller/sandboxer_controller_ut.cc +@@ -32,6 +32,7 @@ protected: + void TearDown() override + { + m_contoller.reset(nullptr); ++ MockSandboxerClient_SetMock(nullptr); + } + + std::string m_sandboxer = "sandboxer"; +diff --git a/test/sandbox/controller/shim/shim_controller_ut.cc b/test/sandbox/controller/shim/shim_controller_ut.cc +index e43cc645..75a51797 100644 +--- a/test/sandbox/controller/shim/shim_controller_ut.cc ++++ b/test/sandbox/controller/shim/shim_controller_ut.cc +@@ -41,6 +41,9 @@ protected: + void TearDown() override + { + m_contoller.reset(nullptr); ++ MockCallback_SetMock(nullptr); ++ MockServiceContainerApi_SetMock(nullptr); ++ MockImageApi_SetMock(nullptr); + } + + std::string m_sandboxer = "shim"; +diff --git a/test/sandbox/sandbox/CMakeLists.txt b/test/sandbox/sandbox/CMakeLists.txt +index 6dd6c3ee..d033c93f 100644 +--- a/test/sandbox/sandbox/CMakeLists.txt ++++ b/test/sandbox/sandbox/CMakeLists.txt +@@ -4,8 +4,24 @@ SET(EXE sandbox_ut) + + aux_source_directory(${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types sandbox_type_srcs) + ++if(ENABLE_SANDBOXER) ++ set(sandboxer_srcs ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc ++ ) ++ set(sandbox_dir ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/client ++ ) ++else() ++ set(sandboxer_srcs "") ++ set(sandbox_dir "") ++endif() ++ + add_executable(${EXE} + ${sandbox_type_srcs} ++ ${sandboxer_srcs} + ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc + ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/errors.cc +@@ -15,12 +31,10 @@ add_executable(${EXE} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandbox.cc + ${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/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 + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/daemon_arguments.c +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_controller_mock.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/mailbox_mock.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/err_msg.c +@@ -28,6 +42,7 @@ add_executable(${EXE} + + target_include_directories(${EXE} PUBLIC + ${GTEST_INCLUDE_DIR} ++ ${sandbox_dir} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config +@@ -37,9 +52,6 @@ target_include_directories(${EXE} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/shim/controller +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/client + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils +diff --git a/test/sandbox/sandbox_manager/CMakeLists.txt b/test/sandbox/sandbox_manager/CMakeLists.txt +index a7dd8c9d..45c55300 100644 +--- a/test/sandbox/sandbox_manager/CMakeLists.txt ++++ b/test/sandbox/sandbox_manager/CMakeLists.txt +@@ -4,8 +4,18 @@ SET(EXE sandbox_manager_ut) + + aux_source_directory(${CMAKE_BINARY_DIR}/grpc/src/api/services/sandbox/sandbox/types sandbox_type_srcs) + ++if(ENABLE_SANDBOXER) ++ set(sandboxer_srcs ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/sandboxer/controller/sandboxer_controller.cc ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc ++ ) ++else() ++ set(sandboxer_srcs "") ++endif() ++ + add_executable(${EXE} + ${sandbox_type_srcs} ++ ${sandboxer_srcs} + ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/v1/api_v1.pb.cc + ${CMAKE_BINARY_DIR}/grpc/src/api/services/cri/gogo.pb.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cpputils/errors.cc +@@ -19,8 +29,6 @@ add_executable(${EXE} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/common/err_msg.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/config/daemon_arguments.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../src/daemon/sandbox/controller_manager.cc +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/grpc_sandboxer_client_mock.cc +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/sandboxer_controller_mock.cc + ${CMAKE_CURRENT_SOURCE_DIR}/../../../test/mocks/shim_controller_mock.cc + ${CMAKE_CURRENT_SOURCE_DIR}/sandbox_manager_ut.cc) + +diff --git a/test/sandbox/sandbox_manager/sandbox_manager_ut.cc b/test/sandbox/sandbox_manager/sandbox_manager_ut.cc +index 9e762039..276b6f4c 100644 +--- a/test/sandbox/sandbox_manager/sandbox_manager_ut.cc ++++ b/test/sandbox/sandbox_manager/sandbox_manager_ut.cc +@@ -154,7 +154,9 @@ TEST_F(SandboxManagerTest, TestCreateSandbox) + "{\"cri-sandboxers\": {\"kuasar\": {\"name\": \"vmm\",\"address\": \"/run/vmm-sandboxer.sock\"}}}"; + struct service_arguments *args = CreateDummyServerConf(daemonConfig); + ASSERT_NE(args, nullptr); ++#ifdef ENABLE_SANDBOXER + EXPECT_CALL(*isuladConfMock, ConfGetServerConf()).Times(1).WillOnce(testing::Return(args)); ++#endif + EXPECT_TRUE(ControllerManager::GetInstance()->Init(error)); + EXPECT_TRUE(error.Empty()); + +-- +2.34.1 + |