From f9eae0aed476153694f7ead24de6927138f51ed9 Mon Sep 17 00:00:00 2001 From: WangFengTu Date: Thu, 24 Feb 2022 19:29:12 +0800 Subject: [PATCH] update version to v2.0.7 Signed-off-by: WangFengTu --- 0001-improve-code-for-check-ags.patch | 84 --- 0002-improve-coverage-of-ut.patch | 697 ------------------ 0003-support-new-cpp-synx-check.patch | 77 -- ...rmit-other-read-pc-and-so-of-clibcni.patch | 37 - ...f-gcc-compilation-optimization-level.patch | 26 - clibcni.spec | 20 +- v2.0.6.tar.gz | Bin 42956 -> 0 bytes v2.0.7.tar.gz | Bin 0 -> 44121 bytes 8 files changed, 10 insertions(+), 931 deletions(-) delete mode 100644 0001-improve-code-for-check-ags.patch delete mode 100644 0002-improve-coverage-of-ut.patch delete mode 100644 0003-support-new-cpp-synx-check.patch delete mode 100644 0004-permit-other-read-pc-and-so-of-clibcni.patch delete mode 100644 0005-fix-the-error-of-gcc-compilation-optimization-level.patch delete mode 100644 v2.0.6.tar.gz create mode 100644 v2.0.7.tar.gz diff --git a/0001-improve-code-for-check-ags.patch b/0001-improve-code-for-check-ags.patch deleted file mode 100644 index 2237e2d..0000000 --- a/0001-improve-code-for-check-ags.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 9911948a5806c6641d8c6a7ffe7cbe82da165917 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Mon, 22 Nov 2021 06:27:10 +0000 -Subject: [PATCH 1/6] improve code for check ags - -Signed-off-by: haozi007 ---- - .gitignore | 2 ++ - src/api.c | 9 +++++++-- - src/conf.c | 9 +++++---- - 3 files changed, 14 insertions(+), 6 deletions(-) - -diff --git a/.gitignore b/.gitignore -index c663504..31f4e6f 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -28,3 +28,5 @@ missing - - **/.deps - **/.dirstamp -+ -+.vscode -diff --git a/src/api.c b/src/api.c -index 52d193f..13a4ec8 100644 ---- a/src/api.c -+++ b/src/api.c -@@ -114,6 +114,10 @@ static int inject_runtime_config_items(const struct network_config *orig, const - int ret = -1; - size_t i = 0; - -+ if (orig->network->capabilities == NULL) { -+ return 0; -+ } -+ - *rt_config = clibcni_util_common_calloc_s(sizeof(cni_net_conf_runtime_config)); - if (*rt_config == NULL) { - *err = clibcni_util_strdup_s("Out of memory"); -@@ -182,8 +186,9 @@ static int inject_runtime_config(const struct network_config *orig, const struct - return -1; - } - -- if (orig->network == NULL || orig->network->capabilities == NULL) { -- return 0; -+ if (orig->network == NULL) { -+ ERROR("empty network config"); -+ return -1; - } - - save_conf = orig->network->runtime_config; -diff --git a/src/conf.c b/src/conf.c -index a6f3f04..d1ff3d9 100644 ---- a/src/conf.c -+++ b/src/conf.c -@@ -37,13 +37,14 @@ - static int do_conf_from_bytes(const char *conf_str, struct network_config *config, char **err) - { - int ret = 0; -+ int nret = 0; - parser_error jerr = NULL; - struct parser_context ctx = { OPT_PARSE_FULLKEY | OPT_GEN_SIMPLIFY, 0 }; - - config->network = cni_net_conf_parse_data(conf_str, &ctx, &jerr); - if (config->network == NULL) { -- ret = asprintf(err, "Error parsing configuration: %s", jerr); -- if (ret < 0) { -+ nret = asprintf(err, "Error parsing configuration: %s", jerr); -+ if (nret < 0) { - *err = clibcni_util_strdup_s("Out of memory"); - } - ERROR("Error parsing configuration: %s", jerr); -@@ -51,8 +52,8 @@ static int do_conf_from_bytes(const char *conf_str, struct network_config *confi - goto out; - } - if (config->network->name != NULL && clibcni_util_validate_name(config->network->name) != 0) { -- ret = asprintf(err, "Invalid network name: %s", config->network->name); -- if (ret < 0) { -+ nret = asprintf(err, "Invalid network name: %s", config->network->name); -+ if (nret < 0) { - *err = clibcni_util_strdup_s("Out of memory"); - } - ERROR("Invalid network name: %s", config->network->name); --- -2.20.1 - diff --git a/0002-improve-coverage-of-ut.patch b/0002-improve-coverage-of-ut.patch deleted file mode 100644 index b5bf5fc..0000000 --- a/0002-improve-coverage-of-ut.patch +++ /dev/null @@ -1,697 +0,0 @@ -From 76386373577c70a3a302c6aaa48fd301ffb173b2 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Mon, 22 Nov 2021 06:27:29 +0000 -Subject: [PATCH 2/6] improve coverage of ut - -Signed-off-by: haozi007 ---- - tests/CMakeLists.txt | 11 + - tests/api_llt.cpp | 382 +++++++++++++++++++++++++++++- - tests/confs/default-invalid.conf | 13 + - tests/confs/default.json | 13 + - tests/confs/test-bad.conflist | 12 + - tests/confs/test-invalid.conflist | 12 + - tests/confs/test.conflist | 12 + - tests/utils/bridge | 16 ++ - tests/utils/bridge-bad | 8 + - tests/utils/constants.h | 19 ++ - tests/utils/host-local | 8 + - tests/utils/loopback | 8 + - tests/utils/portmap | 8 + - 13 files changed, 517 insertions(+), 5 deletions(-) - create mode 100644 tests/confs/default-invalid.conf - create mode 100644 tests/confs/default.json - create mode 100644 tests/confs/test-bad.conflist - create mode 100644 tests/confs/test-invalid.conflist - create mode 100644 tests/confs/test.conflist - create mode 100755 tests/utils/bridge - create mode 100755 tests/utils/bridge-bad - create mode 100755 tests/utils/host-local - create mode 100755 tests/utils/loopback - create mode 100755 tests/utils/portmap - -diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt -index e2571a0..b1f5c35 100644 ---- a/tests/CMakeLists.txt -+++ b/tests/CMakeLists.txt -@@ -19,6 +19,17 @@ include_directories( - - add_subdirectory(utils) - -+file(COPY utils/loopback DESTINATION utils/) -+file(COPY utils/bridge DESTINATION utils/) -+file(COPY utils/portmap DESTINATION utils/) -+file(COPY utils/host-local DESTINATION utils/) -+file(COPY utils/bridge-bad DESTINATION utils/) -+file(COPY confs/default-invalid.conf DESTINATION confs/) -+file(COPY confs/default.json DESTINATION confs/) -+file(COPY confs/test-bad.conflist DESTINATION confs/) -+file(COPY confs/test-invalid.conflist DESTINATION confs/) -+file(COPY confs/test.conflist DESTINATION confs/) -+ - macro(_DEFINE_NEW_TEST) - add_executable(${ARGV0} - ${TESTS_UTILS_SRCS} -diff --git a/tests/api_llt.cpp b/tests/api_llt.cpp -index d21ec01..186c76b 100644 ---- a/tests/api_llt.cpp -+++ b/tests/api_llt.cpp -@@ -18,6 +18,7 @@ - - #include - #include -+#include - - #include "api.h" - #include "version.h" -@@ -130,9 +131,9 @@ TEST(api_testcases, cni_conflist_from_conf) - struct cni_network_list_conf *new_list = NULL; - char *err = NULL; - struct cni_network_conf test = { -- .name = "default", -- .type = "bridge", -- .bytes = COMMON_CONF, -+ .name = (char *)"default", -+ .type = (char *)"bridge", -+ .bytes = (char *)COMMON_CONF, - }; - - ret = cni_conflist_from_conf(&test, &new_list, &err); -@@ -150,6 +151,15 @@ TEST(api_testcases, cni_conflist_from_conf) - - TEST(api_testcases, get_version_info) - { -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/utils"); -+ ASSERT_NE(pwd, nullptr); -+ - const std::string CNI_PLUGIN_PATH = "/opt/cni/bin/"; - char *err = nullptr; - struct plugin_info *pinfo = nullptr; -@@ -162,14 +172,24 @@ TEST(api_testcases, get_version_info) - if (ret != 0) { - if (strstr(err, "No such file or directory") != nullptr) { - std::cout << "Skip: cni_get_version_info api cause by no bridge plugin found" << std::endl; -- return; -+ ret = 0; - } - std::cout << "Get version failed:" << err << std::endl; - } - ASSERT_EQ(ret, 0); -+ free(err); -+ err = nullptr; -+ -+ free(paths[0]); -+ paths[0] = strdup(pwd_buf); -+ ret = cni_get_version_info(bridge_name.c_str(), paths, &pinfo, &err); -+ if (ret != 0) { -+ std::cout << "Get version failed:" << err << std::endl; -+ } -+ ASSERT_EQ(ret, 0); - - /* check plugin info */ -- EXPECT_STREQ("0.4.0", pinfo->cniversion); -+ EXPECT_STREQ("0.3.1", pinfo->cniversion); - ASSERT_LE(0, pinfo->supported_versions_len); - for (i = 0; i < pinfo->supported_versions_len; i++) { - if (strcmp(pinfo->supported_versions[i], CURRENT_VERSION) == 0) { -@@ -183,3 +203,355 @@ TEST(api_testcases, get_version_info) - paths[0] = nullptr; - } - -+TEST(api_testcases, cni_log_ops) -+{ -+ int ret = 0; -+ -+ ret = cni_log_init("xxx", "/tmp/cni.log", "debug"); -+ ASSERT_NE(ret, 0); -+ ret = cni_log_init("file", "xxx", "debug"); -+ ASSERT_NE(ret, 0); -+ ret = cni_log_init("file", "/tmp/cni.log", "xxx"); -+ ASSERT_NE(ret, 0); -+ -+ ret = cni_log_init("stdout", nullptr, "debug"); -+ ASSERT_EQ(ret, 0); -+ -+ cni_set_log_prefix("xxx"); -+ -+ cni_free_log_prefix(); -+} -+ -+TEST(api_testcases, cni_add_network_list) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *paths[] = {pwd_buf, nullptr}; -+ pid_t cpid = getpid(); -+ char netns[PATH_MAX] = {0x0}; -+ char *err = NULL; -+ struct runtime_conf rc = { -+ .container_id = (char *)"abcd", -+ .netns = netns, -+ .ifname = (char *)"eth0", -+ .p_mapping_len = 1, -+ }; -+ struct result *pret = nullptr; -+ -+ rc.p_mapping = (struct cni_port_mapping **)calloc(1, sizeof(struct cni_port_mapping *)); -+ ASSERT_NE(rc.p_mapping, nullptr); -+ rc.p_mapping[0] = (struct cni_port_mapping *)calloc(1, sizeof(struct cni_port_mapping)); -+ ASSERT_NE(rc.p_mapping[0], nullptr); -+ rc.p_mapping[0]->container_port = 80; -+ rc.p_mapping[0]->host_port = 8080; -+ -+ (void)sprintf(netns, "/proc/%d/ns/net", cpid); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/utils"); -+ ASSERT_NE(pwd, nullptr); -+ -+ std::cout << "cni bin path: " << pwd_buf << std::endl; -+ -+ ret = cni_add_network_list(COMMON_CONF_LIST, &rc, paths, &pret, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_EQ(err, nullptr); -+ free_result(pret); -+ pret = nullptr; -+ -+ std::cout << "cni bin path with cap: " << pwd_buf << std::endl; -+ ret = cni_add_network_list(CONF_LIST_WITH_PORTMAP, &rc, paths, &pret, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_EQ(err, nullptr); -+ free_result(pret); -+ pret = nullptr; -+ -+ std::cout << "invlaid config list" << std::endl; -+ ret = cni_add_network_list(INVALID_COMMON_CONF_LIST, &rc, paths, &pret, &err); -+ ASSERT_NE(ret, 0); -+ free_result(pret); -+ pret = nullptr; -+ free(err); -+ err = nullptr; -+ -+ std::cout << "bad config list" << std::endl; -+ ret = cni_add_network_list(BAD_COMMON_CONF_LIST, &rc, paths, &pret, &err); -+ ASSERT_NE(ret, 0); -+ free_result(pret); -+ pret = nullptr; -+ -+ free(err); -+} -+ -+TEST(api_testcases, cni_add_network) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *paths[] = {pwd_buf, nullptr}; -+ pid_t cpid = getpid(); -+ char netns[PATH_MAX] = {0x0}; -+ char *err = NULL; -+ struct runtime_conf rc = { -+ .container_id = (char *)"abcd", -+ .netns = netns, -+ .ifname = (char *)"eth0", -+ .p_mapping_len = 1, -+ }; -+ struct result *pret = nullptr; -+ -+ rc.p_mapping = (struct cni_port_mapping **)calloc(1, sizeof(struct cni_port_mapping *)); -+ ASSERT_NE(rc.p_mapping, nullptr); -+ rc.p_mapping[0] = (struct cni_port_mapping *)calloc(1, sizeof(struct cni_port_mapping)); -+ ASSERT_NE(rc.p_mapping[0], nullptr); -+ rc.p_mapping[0]->container_port = 80; -+ rc.p_mapping[0]->host_port = 8080; -+ -+ (void)sprintf(netns, "/proc/%d/ns/net", cpid); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/utils"); -+ ASSERT_NE(pwd, nullptr); -+ -+ std::cout << "cni bin path: " << pwd_buf << std::endl; -+ -+ ret = cni_add_network(COMMON_CONF, &rc, paths, &pret, &err); -+ ASSERT_EQ(ret, 0); -+ free_result(pret); -+ pret = nullptr; -+ -+ ret = cni_add_network(INVALID_COMMON_CONF, &rc, paths, &pret, &err); -+ ASSERT_NE(ret, 0); -+ free_result(pret); -+ pret = nullptr; -+ -+ free(err); -+} -+ -+TEST(api_testcases, cni_delete_network_list) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *paths[] = {pwd_buf, nullptr}; -+ pid_t cpid = getpid(); -+ char netns[PATH_MAX] = {0x0}; -+ char *err = NULL; -+ struct runtime_conf rc = { -+ .container_id = (char *)"abcd", -+ .netns = netns, -+ .ifname = (char *)"eth0", -+ }; -+ -+ (void)sprintf(netns, "/proc/%d/ns/net", cpid); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/utils"); -+ ASSERT_NE(pwd, nullptr); -+ -+ std::cout << "cni bin path: " << pwd_buf << std::endl; -+ -+ ret = cni_del_network_list(COMMON_CONF_LIST, &rc, paths, &err); -+ ASSERT_EQ(ret, 0); -+ -+ std::cout << "delete with invlaid config list" << std::endl; -+ ret = cni_del_network_list(INVALID_COMMON_CONF_LIST, &rc, paths, &err); -+ ASSERT_NE(ret, 0); -+ free(err); -+ err = nullptr; -+ -+ std::cout << "delete with bad config list" << std::endl; -+ ret = cni_del_network_list(BAD_COMMON_CONF_LIST, &rc, paths, &err); -+ ASSERT_NE(ret, 0); -+ -+ free(err); -+} -+ -+TEST(api_testcases, cni_delete_network) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *paths[] = {pwd_buf, nullptr}; -+ pid_t cpid = getpid(); -+ char netns[PATH_MAX] = {0x0}; -+ char *err = NULL; -+ struct runtime_conf rc = { -+ .container_id = (char *)"abcd", -+ .netns = netns, -+ .ifname = (char *)"eth0", -+ }; -+ -+ (void)sprintf(netns, "/proc/%d/ns/net", cpid); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/utils"); -+ ASSERT_NE(pwd, nullptr); -+ -+ std::cout << "cni bin path: " << pwd_buf << std::endl; -+ -+ ret = cni_del_network(COMMON_CONF, &rc, paths, &err); -+ ASSERT_EQ(ret, 0); -+ -+ ret = cni_del_network(INVALID_COMMON_CONF, &rc, paths, &err); -+ ASSERT_NE(ret, 0); -+ -+ free(err); -+} -+ -+TEST(api_testcases, cni_conf_files) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *paths[] = {pwd_buf, nullptr}; -+ char *err = NULL; -+ const char *exts[] = {"json", "conf", "conflist"}; -+ char **result = nullptr; -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ -+ pwd = strcat(pwd_buf, "/confs"); -+ ASSERT_NE(pwd, nullptr); -+ -+ std::cout << "cni conf path: " << pwd_buf << std::endl; -+ -+ ret = cni_conf_files(pwd_buf, exts, 3, &result, &err); -+ ASSERT_EQ(ret, 0); -+ free(err); -+ err = nullptr; -+ -+ ret = cni_conf_files("xxxx", exts, 3, &result, &err); -+ ASSERT_EQ(ret, 0); -+ free(err); -+ err = nullptr; -+ -+ ret = cni_conf_files(pwd_buf, exts, 3, &result, nullptr); -+ ASSERT_NE(ret, 0); -+ -+ free(err); -+} -+ -+TEST(api_testcases, cni_conf_from_file) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *err = NULL; -+ struct cni_network_conf *config = nullptr; -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ pwd = strcat(pwd_buf, "/confs/default-invalid.conf"); -+ ASSERT_NE(pwd, nullptr); -+ std::cout << "cni conf path: " << pwd_buf << std::endl; -+ ret = cni_conf_from_file(pwd_buf, &config, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_NE(config, nullptr); -+ free(err); -+ err = nullptr; -+ free_cni_network_conf(config); -+ config = nullptr; -+ memset(pwd_buf, 0, PATH_MAX); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ pwd = strcat(pwd_buf, "/confs/default.json"); -+ ASSERT_NE(pwd, nullptr); -+ std::cout << "cni conf path: " << pwd_buf << std::endl; -+ ret = cni_conf_from_file(pwd_buf, &config, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_NE(config, nullptr); -+ free(err); -+ err = nullptr; -+ free_cni_network_conf(config); -+ config = nullptr; -+ memset(pwd_buf, 0, PATH_MAX); -+ -+ ret = cni_conf_from_file("/tmp/xxx/xxx.json", &config, &err); -+ ASSERT_NE(ret, 0); -+ ASSERT_EQ(config, nullptr); -+ free(err); -+ err = nullptr; -+} -+ -+ -+TEST(api_testcases, cni_conflist_from_file) -+{ -+ int ret = 0; -+ char pwd_buf[PATH_MAX] = {0X0}; -+ char *pwd = nullptr; -+ char *err = NULL; -+ struct cni_network_list_conf *list = nullptr; -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ pwd = strcat(pwd_buf, "/confs/test-invalid.conflist"); -+ ASSERT_NE(pwd, nullptr); -+ std::cout << "cni conflist path: " << pwd_buf << std::endl; -+ ret = cni_conflist_from_file(pwd_buf, &list, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_NE(list, nullptr); -+ free(err); -+ err = nullptr; -+ free_cni_network_list_conf(list); -+ list = nullptr; -+ memset(pwd_buf, 0, PATH_MAX); -+ -+ pwd = getcwd(pwd_buf, PATH_MAX); -+ ASSERT_NE(pwd, nullptr); -+ pwd = strcat(pwd_buf, "/confs/test.conflist"); -+ ASSERT_NE(pwd, nullptr); -+ std::cout << "cni conflist path: " << pwd_buf << std::endl; -+ ret = cni_conflist_from_file(pwd_buf, &list, &err); -+ ASSERT_EQ(ret, 0); -+ ASSERT_NE(list, nullptr); -+ free(err); -+ err = nullptr; -+ free_cni_network_list_conf(list); -+ list = nullptr; -+ memset(pwd_buf, 0, PATH_MAX); -+ -+ ret = cni_conflist_from_file("/tmp/xxx/xxx.json", &list, &err); -+ ASSERT_NE(ret, 0); -+ ASSERT_EQ(list, nullptr); -+ free(err); -+ err = nullptr; -+} -+ -+TEST(api_testcases, free_cni_port_mapping) -+{ -+ int ret = 0; -+ struct cni_port_mapping *cpm = (struct cni_port_mapping *)malloc(sizeof(struct cni_port_mapping)); -+ -+ cpm->container_port = 80; -+ cpm->host_port = 8080; -+ cpm->protocol = strdup("tcp"); -+ cpm->host_ip = nullptr; -+ -+ free_cni_port_mapping(cpm); -+} -+ -+TEST(api_testcases, free_runtime_conf) -+{ -+ int ret = 0; -+ struct runtime_conf *rc = (struct runtime_conf *)calloc(sizeof(struct runtime_conf), 1); -+ -+ rc->ifname = strdup("eth0"); -+ rc->p_mapping_len = 2; -+ rc->p_mapping = (struct cni_port_mapping **)calloc(sizeof(struct cni_port_mapping *), 2); -+ rc->p_mapping[0] = (struct cni_port_mapping *)calloc(sizeof(struct cni_port_mapping), 1); -+ rc->p_mapping[1] = (struct cni_port_mapping *)calloc(sizeof(struct cni_port_mapping), 1); -+ -+ free_runtime_conf(rc); -+} -\ No newline at end of file -diff --git a/tests/confs/default-invalid.conf b/tests/confs/default-invalid.conf -new file mode 100644 -index 0000000..75596cb ---- /dev/null -+++ b/tests/confs/default-invalid.conf -@@ -0,0 +1,13 @@ -+{ -+ "cniVersion": "0.3.1", -+ "name": "invalid-conf", -+ "type": "xxxx", -+ "bridge": "cni0", -+ "isGateway": "true", -+ "ipam": { -+ "type": "host-local", -+ "subnet": "10.1.0.0/16", -+ "gateway": "10.1.0.1" -+ }, -+ "dns": {"nameservers": ["10.1.0.1"]} -+} -\ No newline at end of file -diff --git a/tests/confs/default.json b/tests/confs/default.json -new file mode 100644 -index 0000000..5ff3def ---- /dev/null -+++ b/tests/confs/default.json -@@ -0,0 +1,13 @@ -+{ -+ "cniVersion": "0.3.1", -+ "name": "default", -+ "type": "bridge", -+ "bridge": "cni0", -+ "isGateway": "true", -+ "ipam": { -+ "type": "host-local", -+ "subnet": "10.1.0.0/16", -+ "gateway": "10.1.0.1" -+ }, -+ "dns": {"nameservers": ["10.1.0.1"]} -+} -\ No newline at end of file -diff --git a/tests/confs/test-bad.conflist b/tests/confs/test-bad.conflist -new file mode 100644 -index 0000000..bc6cad7 ---- /dev/null -+++ b/tests/confs/test-bad.conflist -@@ -0,0 +1,12 @@ -+{ -+ "cniVersion": "0.3.1", -+ "name": "test", -+ "plugins": [ -+ { -+ "cniVersion": "0.3.1", "name": "test", "type": "bridge-bad" -+ }, -+ { -+ "name": "exist", "type": "bridge-bad", "dns": {"nameservers": ["10.1.0.1"]} -+ } -+ ] -+} -\ No newline at end of file -diff --git a/tests/confs/test-invalid.conflist b/tests/confs/test-invalid.conflist -new file mode 100644 -index 0000000..544fddd ---- /dev/null -+++ b/tests/confs/test-invalid.conflist -@@ -0,0 +1,12 @@ -+{ -+ "cniVersion": "0.3.1", -+ "name": "test", -+ "plugins": [ -+ { -+ "cniVersion": "0.3.1", "name": "test", "type": "xxxx" -+ }, -+ { -+ "name": "exist", "type": "bridge", "dns": {"nameservers": ["10.1.0.1"]} -+ } -+ ] -+} -\ No newline at end of file -diff --git a/tests/confs/test.conflist b/tests/confs/test.conflist -new file mode 100644 -index 0000000..7171dcc ---- /dev/null -+++ b/tests/confs/test.conflist -@@ -0,0 +1,12 @@ -+{ -+ "cniVersion": "0.3.1", -+ "name": "test", -+ "plugins": [ -+ { -+ "cniVersion": "0.3.1", "name": "test", "type": "bridge" -+ }, -+ { -+ "name": "exist", "type": "bridge", "dns": {"nameservers": ["10.1.0.1"]} -+ } -+ ] -+} -\ No newline at end of file -diff --git a/tests/utils/bridge b/tests/utils/bridge -new file mode 100755 -index 0000000..815ba74 ---- /dev/null -+++ b/tests/utils/bridge -@@ -0,0 +1,16 @@ -+#!/bin/bash -+ -+echo "{ -+ \"cniVersion\": \"0.3.1\", -+ \"supportedVersions\": [ \"0.1.0\", \"0.2.0\", \"0.3.0\", \"0.3.1\" ], -+ \"routes\": [ {\"dst\": \"192.168.1.0/24\", \"gw\": \"192.168.1.1\"} ], -+ \"interfaces\": [ -+ {\"name\": \"eth0\", \"mac\": \"ab:ab:ab:ab:ab:ab\", \"sandbox\": \"/proc/xx/ns/net\"} -+ ], -+ \"ips\": [ -+ {\"address\": \"192.168.1.2/24\", \"gateway\": \"192.168.1.1\", \"interface\": 1} -+ ], -+ \"dns\":{\"nameservers\": [\"test.com\"], \"domain\": \"test.com\", \"search\": [\"test\"], \"options\": [\"test\"]} -+}" -+ -+exit 0 -\ No newline at end of file -diff --git a/tests/utils/bridge-bad b/tests/utils/bridge-bad -new file mode 100755 -index 0000000..02a90d4 ---- /dev/null -+++ b/tests/utils/bridge-bad -@@ -0,0 +1,8 @@ -+#!/bin/bash -+ -+echo "{ -+ \"cniVersion\": \"0.3.1\", -+ \"dns\": {} -+}" -+ -+exit 1 -\ No newline at end of file -diff --git a/tests/utils/constants.h b/tests/utils/constants.h -index 1f06bfc..afeaff8 100644 ---- a/tests/utils/constants.h -+++ b/tests/utils/constants.h -@@ -25,11 +25,30 @@ extern "C" { - \"plugins\":[{\"cniVersion\":\"0.3.0\", \"name\":\"default\",\"type\":\"bridge\"}, \ - {\"name\": \"exist\",\"type\": \"bridge\", \"dns\": {\"nameservers\": [\"10.1.0.1\"]}}]}" - -+#define CONF_LIST_WITH_PORTMAP "{\"cniVersion\":\"0.3.0\",\"name\":\"default\", \ -+ \"plugins\":[{\"cniVersion\":\"0.3.0\", \"name\":\"default\",\"type\":\"bridge\"}, \ -+ {\"type\": \"portmap\", \"capabilities\": { \"portMappings\": true } }]}" -+ - #define COMMON_CONF "{\"cniVersion\":\"0.3.0\",\"name\":\"default\", \ - \"type\": \"bridge\", \"bridge\": \"cni0\", \"isGateway\": \"true\", \ - \"ipam\": {\"type\": \"host-local\", \"subnet\": \"10.1.0.0/16\", \"gateway\": \"10.1.0.1\"},\ - \"dns\": {\"nameservers\": [\"10.1.0.1\"]}}" - -+ -+#define INVALID_COMMON_CONF_LIST "{\"cniVersion\":\"0.3.0\",\"name\":\"default\", \ -+ \"plugins\":[{\"cniVersion\":\"0.3.0\", \"name\":\"default\",\"type\":\"bridge\"}, \ -+ {\"name\": \"exist\",\"type\": \"xxxx\", \"dns\": {\"nameservers\": [\"10.1.0.1\"]}}]}" -+ -+#define INVALID_COMMON_CONF "{\"cniVersion\":\"0.3.0\",\"name\":\"default\", \ -+ \"type\": \"xxxx\", \"bridge\": \"cni0\", \"isGateway\": \"true\", \ -+ \"ipam\": {\"type\": \"host-local\", \"subnet\": \"10.1.0.0/16\", \"gateway\": \"10.1.0.1\"},\ -+ \"dns\": {\"nameservers\": [\"10.1.0.1\"]}}" -+ -+ -+#define BAD_COMMON_CONF_LIST "{\"cniVersion\":\"0.3.0\",\"name\":\"default\", \ -+ \"plugins\":[{\"cniVersion\":\"0.3.0\", \"name\":\"default\",\"type\":\"bridge-bad\"}, \ -+ {\"name\": \"exist\",\"type\": \"bridge\", \"dns\": {\"nameservers\": [\"10.1.0.1\"]}}]}" -+ - #ifdef __cplusplus - } - #endif -diff --git a/tests/utils/host-local b/tests/utils/host-local -new file mode 100755 -index 0000000..1dd4ae5 ---- /dev/null -+++ b/tests/utils/host-local -@@ -0,0 +1,8 @@ -+#!/bin/bash -+ -+echo "{ -+ \"cniVersion\": \"0.3.1\", -+ \"dns\": {} -+}" -+ -+exit 0 -\ No newline at end of file -diff --git a/tests/utils/loopback b/tests/utils/loopback -new file mode 100755 -index 0000000..1dd4ae5 ---- /dev/null -+++ b/tests/utils/loopback -@@ -0,0 +1,8 @@ -+#!/bin/bash -+ -+echo "{ -+ \"cniVersion\": \"0.3.1\", -+ \"dns\": {} -+}" -+ -+exit 0 -\ No newline at end of file -diff --git a/tests/utils/portmap b/tests/utils/portmap -new file mode 100755 -index 0000000..1dd4ae5 ---- /dev/null -+++ b/tests/utils/portmap -@@ -0,0 +1,8 @@ -+#!/bin/bash -+ -+echo "{ -+ \"cniVersion\": \"0.3.1\", -+ \"dns\": {} -+}" -+ -+exit 0 -\ No newline at end of file --- -2.20.1 - diff --git a/0003-support-new-cpp-synx-check.patch b/0003-support-new-cpp-synx-check.patch deleted file mode 100644 index 5611008..0000000 --- a/0003-support-new-cpp-synx-check.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 830b3ce91c04c6d6970e7564834720f3a1d57b80 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Mon, 22 Nov 2021 11:32:00 +0000 -Subject: [PATCH 3/6] support new cpp synx check - -Signed-off-by: haozi007 ---- - tests/api_llt.cpp | 25 ++++++++++++++----------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git a/tests/api_llt.cpp b/tests/api_llt.cpp -index 186c76b..5ea7c09 100644 ---- a/tests/api_llt.cpp -+++ b/tests/api_llt.cpp -@@ -232,10 +232,13 @@ TEST(api_testcases, cni_add_network_list) - char netns[PATH_MAX] = {0x0}; - char *err = NULL; - struct runtime_conf rc = { -- .container_id = (char *)"abcd", -- .netns = netns, -- .ifname = (char *)"eth0", -- .p_mapping_len = 1, -+ container_id: (char *)"abcd", -+ netns: netns, -+ ifname: (char *)"eth0", -+ args: nullptr, -+ args_len: 0, -+ p_mapping: nullptr, -+ p_mapping_len: 1, - }; - struct result *pret = nullptr; - -@@ -296,10 +299,13 @@ TEST(api_testcases, cni_add_network) - char netns[PATH_MAX] = {0x0}; - char *err = NULL; - struct runtime_conf rc = { -- .container_id = (char *)"abcd", -- .netns = netns, -- .ifname = (char *)"eth0", -- .p_mapping_len = 1, -+ container_id: (char *)"abcd", -+ netns: netns, -+ ifname: (char *)"eth0", -+ args: nullptr, -+ args_len: 0, -+ p_mapping: nullptr, -+ p_mapping_len: 1, - }; - struct result *pret = nullptr; - -@@ -413,7 +419,6 @@ TEST(api_testcases, cni_conf_files) - int ret = 0; - char pwd_buf[PATH_MAX] = {0X0}; - char *pwd = nullptr; -- char *paths[] = {pwd_buf, nullptr}; - char *err = NULL; - const char *exts[] = {"json", "conf", "conflist"}; - char **result = nullptr; -@@ -531,7 +536,6 @@ TEST(api_testcases, cni_conflist_from_file) - - TEST(api_testcases, free_cni_port_mapping) - { -- int ret = 0; - struct cni_port_mapping *cpm = (struct cni_port_mapping *)malloc(sizeof(struct cni_port_mapping)); - - cpm->container_port = 80; -@@ -544,7 +548,6 @@ TEST(api_testcases, free_cni_port_mapping) - - TEST(api_testcases, free_runtime_conf) - { -- int ret = 0; - struct runtime_conf *rc = (struct runtime_conf *)calloc(sizeof(struct runtime_conf), 1); - - rc->ifname = strdup("eth0"); --- -2.20.1 - diff --git a/0004-permit-other-read-pc-and-so-of-clibcni.patch b/0004-permit-other-read-pc-and-so-of-clibcni.patch deleted file mode 100644 index 2513020..0000000 --- a/0004-permit-other-read-pc-and-so-of-clibcni.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2667fdf06d366ec6222302244f1aad078727d6e5 Mon Sep 17 00:00:00 2001 -From: haozi007 -Date: Thu, 2 Dec 2021 11:53:26 +0000 -Subject: [PATCH 4/6] permit other read pc and so of clibcni - -Signed-off-by: haozi007 ---- - CMakeLists.txt | 2 +- - src/CMakeLists.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index f812dde..64193b4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -76,7 +76,7 @@ endif() - - # install all files - install(FILES ${CMAKE_BINARY_DIR}/conf/clibcni.pc -- DESTINATION ${LIB_INSTALL_DIR_DEFAULT}/pkgconfig PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE) -+ DESTINATION ${LIB_INSTALL_DIR_DEFAULT}/pkgconfig PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ GROUP_WRITE WORLD_READ WORLD_EXECUTE) - install(FILES src/types/types.h DESTINATION include/clibcni) - install(FILES src/version/version.h DESTINATION include/clibcni) - install(FILES src/api.h DESTINATION include/clibcni) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 1fe1b72..6f05299 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -27,4 +27,4 @@ target_link_libraries(clibcni ${ISULA_LIBUTILS_LIBRARY}) - - # install all files - install(TARGETS clibcni -- LIBRARY DESTINATION ${LIB_INSTALL_DIR_DEFAULT} PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE) -+ LIBRARY DESTINATION ${LIB_INSTALL_DIR_DEFAULT} PERMISSIONS OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) --- -2.20.1 - diff --git a/0005-fix-the-error-of-gcc-compilation-optimization-level.patch b/0005-fix-the-error-of-gcc-compilation-optimization-level.patch deleted file mode 100644 index 4be7a8e..0000000 --- a/0005-fix-the-error-of-gcc-compilation-optimization-level.patch +++ /dev/null @@ -1,26 +0,0 @@ -From e41403afe07661518b0e4a6a509f3ec916c3a83f Mon Sep 17 00:00:00 2001 -From: wujing -Date: Thu, 9 Dec 2021 11:01:31 +0800 -Subject: [PATCH 5/6] fix the error of gcc compilation optimization level - -Signed-off-by: wujing ---- - CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 64193b4..09bf3f9 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -8,7 +8,7 @@ endif() - - option(DEBUG "set clibcni gcc option" ON) - if (DEBUG STREQUAL "ON") -- add_definitions("-g -o2") -+ add_definitions("-g -O2") - endif() - - option(GCOV "set clibcni gcov option" OFF) --- -2.20.1 - diff --git a/clibcni.spec b/clibcni.spec index 792a76c..8d85fa9 100644 --- a/clibcni.spec +++ b/clibcni.spec @@ -1,5 +1,5 @@ -%global _version 2.0.6 -%global _release 7 +%global _version 2.0.7 +%global _release 1 Name: clibcni Version: %{_version} Release: %{_release} @@ -10,13 +10,7 @@ URL: https://gitee.com/openeuler/clibcni Source0: https://gitee.com/openeuler/clibcni/repository/archive/v%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version} -Patch0001: 0001-improve-code-for-check-ags.patch -Patch0002: 0002-improve-coverage-of-ut.patch -Patch0003: 0003-support-new-cpp-synx-check.patch -Patch0004: 0004-permit-other-read-pc-and-so-of-clibcni.patch -Patch0005: 0005-fix-the-error-of-gcc-compilation-optimization-level.patch - -%define lcrver 2.0.6 +%define lcrver 2.0.7 BuildRequires: gcc git gcc-c++ BuildRequires: cmake @@ -46,7 +40,7 @@ Requires: %{name} = %{version}-%{release} the %{name}-libs package contains libraries for running %{name} applications. %prep -%autosetup -n %{name} -Sgit -p1 +%autosetup -n clibcni-v%{_version} -Sgit -p1 %build mkdir -p build @@ -97,6 +91,12 @@ rm -rf %{buildroot} %{_libdir}/pkgconfig/%{name}.pc %changelog +* Thu Feb 24 2022 wangfengtu - 2.0.7-1 +- Type: enhancement +- ID: NA +- SUG: NA +- DESC: update to version v2.0.7 + * Mon Jan 10 2022 haozi007 - 2.0.6-7 - Type: sync patch from upstream - ID: NA diff --git a/v2.0.6.tar.gz b/v2.0.6.tar.gz deleted file mode 100644 index ff9a6766ac3063974ca69e3d23fc18a3ec07b99d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42956 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 z 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 c_r@M@Jo}j;^#4C0oduyB>lRjmML>c5A5