On Wed, 2024-04-10 at 15:29 +0800, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> The helpers ASSERT_OK/GE/OK_PTR should avoid using in public
> functions.
> This patch uses log_err() to replace them in network_helpers.c.
>
> And drop '#include "test_progs.h"' in it, include <pthread.h> and
> <sys/param.h> instead.
Sorry, CI complains about this:
network_helpers.c: In function ‘open_netns’:
network_helpers.c:466:25: error: implicit declaration of function
‘open’; did you mean ‘popen’? [-Werror=implicit-function-declaration]
466 | token->orig_netns_fd = open("/proc/self/ns/net", O_RDONLY);
| ^~~~
| popen
"test_progs.h" is still needed. I'll update this in v2.
Changes Requested.
-Geliang
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> tools/testing/selftests/bpf/network_helpers.c | 22 ++++++++++++++---
> --
> 1 file changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/network_helpers.c
> b/tools/testing/selftests/bpf/network_helpers.c
> index 7ddeb6698ec7..9fd271d5d571 100644
> --- a/tools/testing/selftests/bpf/network_helpers.c
> +++ b/tools/testing/selftests/bpf/network_helpers.c
> @@ -7,11 +7,13 @@
> #include <string.h>
> #include <unistd.h>
> #include <sched.h>
> +#include <pthread.h>
>
> #include <arpa/inet.h>
> #include <sys/mount.h>
> #include <sys/stat.h>
> #include <sys/un.h>
> +#include <sys/param.h>
>
> #include <linux/err.h>
> #include <linux/in.h>
> @@ -20,7 +22,6 @@
>
> #include "bpf_util.h"
> #include "network_helpers.h"
> -#include "test_progs.h"
>
> #ifndef IPPROTO_MPTCP
> #define IPPROTO_MPTCP 262
> @@ -447,22 +448,30 @@ struct nstoken *open_netns(const char *name)
> struct nstoken *token;
>
> token = calloc(1, sizeof(struct nstoken));
> - if (!ASSERT_OK_PTR(token, "malloc token"))
> + if (!token) {
> + log_err("malloc token");
> return NULL;
> + }
>
> token->orig_netns_fd = open("/proc/self/ns/net", O_RDONLY);
> - if (!ASSERT_GE(token->orig_netns_fd, 0, "open
> /proc/self/ns/net"))
> + if (token->orig_netns_fd <= 0) {
> + log_err("open /proc/self/ns/net");
> goto fail;
> + }
>
> snprintf(nspath, sizeof(nspath), "%s/%s", "/var/run/netns",
> name);
> nsfd = open(nspath, O_RDONLY | O_CLOEXEC);
> - if (!ASSERT_GE(nsfd, 0, "open netns fd"))
> + if (nsfd <= 0) {
> + log_err("open netns fd");
> goto fail;
> + }
>
> err = setns(nsfd, CLONE_NEWNET);
> close(nsfd);
> - if (!ASSERT_OK(err, "setns"))
> + if (err) {
> + log_err("setns");
> goto fail;
> + }
>
> return token;
> fail:
> @@ -475,7 +484,8 @@ void close_netns(struct nstoken *token)
> if (!token)
> return;
>
> - ASSERT_OK(setns(token->orig_netns_fd, CLONE_NEWNET),
> "setns");
> + if (setns(token->orig_netns_fd, CLONE_NEWNET))
> + log_err("setns");
> close(token->orig_netns_fd);
> free(token);
> }