diff options
Diffstat (limited to '0169-add-image-storage-unit-test.patch')
-rw-r--r-- | 0169-add-image-storage-unit-test.patch | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/0169-add-image-storage-unit-test.patch b/0169-add-image-storage-unit-test.patch new file mode 100644 index 0000000..e5770ee --- /dev/null +++ b/0169-add-image-storage-unit-test.patch @@ -0,0 +1,135 @@ +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 + |