including: 15dd7690 add layer storage ut test 7a3d70db bugfix for parse_http_header 3144357f bugfix: mem leak 02a8be62 image store:fix code style 4f030e07 registry module code improve 0340a824 fix some bad code 7dfa6916 add image storage unit test 1e9031cc UT: del shim_sandbox and change sandbox ops 16da6634 sandbox: del shim_sandbox and change sandbox ops Signed-off-by: Lu Jingxiao <lujingxiao@huawei.com> (cherry picked from commit cd18a717e414326116ccbd19bc87e29fa9c4ffc6)
136 lines
4.4 KiB
Diff
136 lines
4.4 KiB
Diff
From 7dfa69162cd5ef01592808df555626a0688e6f4c Mon Sep 17 00:00:00 2001
|
|
From: zhongtao <zhongtao17@huawei.com>
|
|
Date: Wed, 11 Dec 2024 19:09:20 +1400
|
|
Subject: [PATCH 03/11] add image storage unit test
|
|
|
|
Signed-off-by: zhongtao <zhongtao17@huawei.com>
|
|
---
|
|
.../oci/storage/image_store/image_store.c | 4 +-
|
|
test/image/oci/storage/images/CMakeLists.txt | 2 +
|
|
.../oci/storage/images/storage_images_ut.cc | 51 +++++++++++++++++++
|
|
3 files changed, 56 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/daemon/modules/image/oci/storage/image_store/image_store.c b/src/daemon/modules/image/oci/storage/image_store/image_store.c
|
|
index afe53764..71bf36e0 100644
|
|
--- a/src/daemon/modules/image/oci/storage/image_store/image_store.c
|
|
+++ b/src/daemon/modules/image/oci/storage/image_store/image_store.c
|
|
@@ -27,6 +27,8 @@
|
|
#include <pthread.h>
|
|
#include <stdlib.h>
|
|
|
|
+#include <isula_libutils/utils_macro.h>
|
|
+
|
|
#include "utils.h"
|
|
#include "utils_file.h"
|
|
#include "utils_images.h"
|
|
@@ -3004,7 +3006,7 @@ static int do_append_image(storage_image *im)
|
|
return 0;
|
|
}
|
|
|
|
-static void strip_host_prefix(char **name)
|
|
+STATIC void strip_host_prefix(char **name)
|
|
{
|
|
char *new_image_name = NULL;
|
|
|
|
diff --git a/test/image/oci/storage/images/CMakeLists.txt b/test/image/oci/storage/images/CMakeLists.txt
|
|
index 28e0b505..04e60a69 100644
|
|
--- a/test/image/oci/storage/images/CMakeLists.txt
|
|
+++ b/test/image/oci/storage/images/CMakeLists.txt
|
|
@@ -2,6 +2,8 @@ project(iSulad_UT)
|
|
|
|
SET(EXE storage_images_ut)
|
|
|
|
+add_definitions(-DUNIT_TEST=ON)
|
|
+
|
|
add_executable(${EXE}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils/utils.c
|
|
${CMAKE_CURRENT_SOURCE_DIR}/../../../../../src/utils/cutils/utils_regex.c
|
|
diff --git a/test/image/oci/storage/images/storage_images_ut.cc b/test/image/oci/storage/images/storage_images_ut.cc
|
|
index ad0084d6..15da586e 100644
|
|
--- a/test/image/oci/storage/images/storage_images_ut.cc
|
|
+++ b/test/image/oci/storage/images/storage_images_ut.cc
|
|
@@ -46,6 +46,10 @@ using ::testing::AtLeast;
|
|
using ::testing::Invoke;
|
|
using ::testing::_;
|
|
|
|
+extern "C" {
|
|
+ void strip_host_prefix(char **name);
|
|
+}
|
|
+
|
|
std::string GetDirectory()
|
|
{
|
|
char abs_path[PATH_MAX] { 0x00 };
|
|
@@ -299,11 +303,13 @@ protected:
|
|
ASSERT_EQ(image_store_init(&opts), 0);
|
|
free(opts.storage_root);
|
|
free(opts.driver_name);
|
|
+ MockIsuladConf_SetMock(&m_isulad_conf);
|
|
}
|
|
|
|
void TearDown() override
|
|
{
|
|
image_store_free();
|
|
+ MockIsuladConf_SetMock(nullptr);
|
|
}
|
|
|
|
void BackUp()
|
|
@@ -325,6 +331,7 @@ protected:
|
|
std::vector<std::string> ids { "39891ff67da98ab8540d71320915f33d2eb80ab42908e398472cab3c1ce7ac10",
|
|
"e4db68de4ff27c2adfea0c54bbb73a61a42f5b667c326de4d7d5b19ab71c6a3b" };
|
|
char store_real_path[PATH_MAX] = { 0x00 };
|
|
+ NiceMock<MockIsuladConf> m_isulad_conf;
|
|
};
|
|
|
|
TEST_F(StorageImagesUnitTest, test_images_load)
|
|
@@ -714,3 +721,47 @@ TEST_F(StorageImagesUnitTest, test_image_store_remove_multi_name)
|
|
|
|
Restore();
|
|
}
|
|
+
|
|
+static isulad_daemon_constants *g_test_isulad_daemon_constants = NULL;
|
|
+
|
|
+isulad_daemon_constants *invoke_get_isulad_daemon_constants(void)
|
|
+{
|
|
+ g_test_isulad_daemon_constants = (isulad_daemon_constants *)util_common_calloc_s(sizeof(isulad_daemon_constants));
|
|
+ if (g_test_isulad_daemon_constants == NULL) {
|
|
+ return NULL;
|
|
+ }
|
|
+ g_test_isulad_daemon_constants->default_host = util_strdup_s("docker.io");
|
|
+
|
|
+ return g_test_isulad_daemon_constants;
|
|
+}
|
|
+
|
|
+TEST_F(StorageImagesUnitTest, test_strip_host_prefix)
|
|
+{
|
|
+ char *name = util_strdup_s("docker.io/test_image");
|
|
+ std::string test_name = "test_image";
|
|
+ std::string test_name_origin = "docker.io/test_image";
|
|
+ char *null_name = NULL;
|
|
+
|
|
+ strip_host_prefix(&name);
|
|
+ ASSERT_STREQ(name, test_name_origin.c_str());
|
|
+
|
|
+ EXPECT_CALL(m_isulad_conf, GetIsuladDaemonConstants()).WillRepeatedly(Invoke(invoke_get_isulad_daemon_constants));
|
|
+
|
|
+ strip_host_prefix(&name);
|
|
+ ASSERT_STREQ(name, test_name.c_str());
|
|
+
|
|
+ strip_host_prefix(&null_name);
|
|
+ ASSERT_EQ(null_name, nullptr);
|
|
+
|
|
+ free(name);
|
|
+ free_isulad_daemon_constants(g_test_isulad_daemon_constants);
|
|
+}
|
|
+
|
|
+#ifdef ENABLE_REMOTE_LAYER_STORE
|
|
+TEST_F(StorageImagesUnitTest, test_remote_layer_common)
|
|
+{
|
|
+ ASSERT_EQ(remote_append_image_by_directory_with_lock(NULL), -1);
|
|
+ ASSERT_EQ(remote_remove_image_from_memory_with_lock(NULL), -1);
|
|
+ ASSERT_EQ(remote_image_get_top_layer_from_json(NULL), nullptr);
|
|
+}
|
|
+#endif
|
|
--
|
|
2.23.0
|
|
|