diff options
Diffstat (limited to '0198-isolate-isula-search-ut-in-registry_images_ut.patch')
-rw-r--r-- | 0198-isolate-isula-search-ut-in-registry_images_ut.patch | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/0198-isolate-isula-search-ut-in-registry_images_ut.patch b/0198-isolate-isula-search-ut-in-registry_images_ut.patch new file mode 100644 index 0000000..f7d5754 --- /dev/null +++ b/0198-isolate-isula-search-ut-in-registry_images_ut.patch @@ -0,0 +1,169 @@ +From 487191cf6bbedc14524056dd653bdc920e78f545 Mon Sep 17 00:00:00 2001 +From: zhongtao <zhongtao17@huawei.com> +Date: Wed, 19 Feb 2025 11:52:59 +1400 +Subject: [PATCH 198/198] isolate isula search ut in registry_images_ut + +Signed-off-by: zhongtao <zhongtao17@huawei.com> +--- + test/image/oci/registry/CMakeLists.txt | 10 ++- + test/image/oci/registry/registry_ut.cc | 103 +++++++++++++------------ + 2 files changed, 61 insertions(+), 52 deletions(-) + +diff --git a/test/image/oci/registry/CMakeLists.txt b/test/image/oci/registry/CMakeLists.txt +index d78bb7d3..5ae59ebc 100644 +--- a/test/image/oci/registry/CMakeLists.txt ++++ b/test/image/oci/registry/CMakeLists.txt +@@ -2,7 +2,16 @@ project(iSulad_UT) + + SET(EXE registry_images_ut) + ++if(ENABLE_IMAGE_SEARCH) ++ set(search_srcs ++ ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/registry_apiv1.c ++ ) ++else() ++ set(search_srcs "") ++endif() ++ + add_executable(${EXE} ++ ${search_srcs} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cutils/utils.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cutils/utils_regex.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/utils/cutils/utils_verify.c +@@ -34,7 +43,6 @@ add_executable(${EXE} + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/storage/remote_layer_support/ro_symlink_maintain.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/registry.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/registry_apiv2.c +- ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/registry_apiv1.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/http_request.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/certs.c + ${CMAKE_CURRENT_SOURCE_DIR}/../../../../src/daemon/modules/image/oci/registry/auths.c +diff --git a/test/image/oci/registry/registry_ut.cc b/test/image/oci/registry/registry_ut.cc +index 4eacdb11..c5d9717c 100644 +--- a/test/image/oci/registry/registry_ut.cc ++++ b/test/image/oci/registry/registry_ut.cc +@@ -395,57 +395,6 @@ int invokeHttpRequestLogin(const char *url, struct http_get_options *options, lo + return 0; + } + +-int invokeHttpRequestSearch(const char *url, struct http_get_options *options, long *response_code, int recursive_len) +-{ +-#define RETRY_TIMES 3 +-#define SEARCH_TEST_NOT_FOUND 2 +-#define SEARCH_TEST_SERVER_ERROR 5 +-#define SEARCH_TEST_RETRY_SUCCESS 8 +- std::string file; +- char *data = nullptr; +- Buffer *output_buffer = (Buffer *)options->output; +- static int search_count = 0; +- +- ERROR("url is %s", url); +- ERROR("search_count is %d", search_count); +- +- std::string data_path = get_dir() + "/data/oci/"; +- if (strcmp(url, "https://index.docker.io/v1/_ping") == 0) { +- file = data_path + "ping_v1_head"; +- } else if (util_has_prefix(url, "https://index.docker.io/v1/search?q=busybox")) { +- search_count++; +- // test not find +- if (search_count >= SEARCH_TEST_NOT_FOUND && search_count < SEARCH_TEST_NOT_FOUND + RETRY_TIMES) { +- file = data_path + "search_result_404"; +- } +- // test server error and restry +- else if ((search_count >= SEARCH_TEST_SERVER_ERROR && search_count < SEARCH_TEST_SERVER_ERROR + RETRY_TIMES) || +- (search_count == SEARCH_TEST_RETRY_SUCCESS)) { +- file = data_path + "search_server_error"; +- } else { +- file = data_path + "search_result"; +- } +- } else { +- ERROR("%s not match failed", url); +- return -1; +- } +- +- data = util_read_text_file(file.c_str()); +- if (data == nullptr) { +- ERROR("read file %s failed", file.c_str()); +- return -1; +- } +- +- if (options->outputtype == HTTP_REQUEST_STRBUF) { +- free(output_buffer->contents); +- output_buffer->contents = util_strdup_s(data); +- } +- free(data); +- +- return 0; +-} +- +- + int invokeStorageImgCreate(const char *id, const char *parent_id, const char *metadata, + struct storage_img_create_options *opts) + { +@@ -921,6 +870,57 @@ TEST_F(RegistryUnitTest, test_cleanup) + ASSERT_EQ(remove_certs(mirror_dir), 0); + } + ++#ifdef ENABLE_IMAGE_SEARCH ++int invokeHttpRequestSearch(const char *url, struct http_get_options *options, long *response_code, int recursive_len) ++{ ++#define RETRY_TIMES 3 ++#define SEARCH_TEST_NOT_FOUND 2 ++#define SEARCH_TEST_SERVER_ERROR 5 ++#define SEARCH_TEST_RETRY_SUCCESS 8 ++ std::string file; ++ char *data = nullptr; ++ Buffer *output_buffer = (Buffer *)options->output; ++ static int search_count = 0; ++ ++ ERROR("url is %s", url); ++ ERROR("search_count is %d", search_count); ++ ++ std::string data_path = get_dir() + "/data/oci/"; ++ if (strcmp(url, "https://index.docker.io/v1/_ping") == 0) { ++ file = data_path + "ping_v1_head"; ++ } else if (util_has_prefix(url, "https://index.docker.io/v1/search?q=busybox")) { ++ search_count++; ++ // test not find ++ if (search_count >= SEARCH_TEST_NOT_FOUND && search_count < SEARCH_TEST_NOT_FOUND + RETRY_TIMES) { ++ file = data_path + "search_result_404"; ++ } ++ // test server error and restry ++ else if ((search_count >= SEARCH_TEST_SERVER_ERROR && search_count < SEARCH_TEST_SERVER_ERROR + RETRY_TIMES) || ++ (search_count == SEARCH_TEST_RETRY_SUCCESS)) { ++ file = data_path + "search_server_error"; ++ } else { ++ file = data_path + "search_result"; ++ } ++ } else { ++ ERROR("%s not match failed", url); ++ return -1; ++ } ++ ++ data = util_read_text_file(file.c_str()); ++ if (data == nullptr) { ++ ERROR("read file %s failed", file.c_str()); ++ return -1; ++ } ++ ++ if (options->outputtype == HTTP_REQUEST_STRBUF) { ++ free(output_buffer->contents); ++ output_buffer->contents = util_strdup_s(data); ++ } ++ free(data); ++ ++ return 0; ++} ++ + TEST_F(RegistryUnitTest, test_search_image) + { + registry_search_options *options = nullptr; +@@ -971,3 +971,4 @@ TEST_F(RegistryUnitTest, test_search_image) + + free_registry_search_options(options); + } ++#endif +\ No newline at end of file +-- +2.34.1 + |