170 lines
6.2 KiB
Diff
170 lines
6.2 KiB
Diff
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
|
|
|