From: Martin KaFai Lau <martin.lau@linux.dev>
To: Geliang Tang <geliang@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>,
Eduard Zingerman <eddyz87@gmail.com>,
Mykola Lysenko <mykolal@fb.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Song Liu <song@kernel.org>,
Yonghong Song <yonghong.song@linux.dev>,
John Fastabend <john.fastabend@gmail.com>,
KP Singh <kpsingh@kernel.org>,
Stanislav Fomichev <sdf@google.com>, Hao Luo <haoluo@google.com>,
Jiri Olsa <jolsa@kernel.org>, Shuah Khan <shuah@kernel.org>,
Geliang Tang <tanggeliang@kylinos.cn>,
bpf@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH bpf-next v8 8/9] selftests/bpf: Use connect_to_addr in sk_lookup
Date: Fri, 5 Jul 2024 14:56:11 -0700 [thread overview]
Message-ID: <460ec092-32da-4e8d-a5e6-4ea6e8091b09@linux.dev> (raw)
In-Reply-To: <52c22148c66184baf5ba09d60c06d49a8a33d743.1720147953.git.tanggeliang@kylinos.cn>
On 7/4/24 7:58 PM, Geliang Tang wrote:
> From: Geliang Tang <tanggeliang@kylinos.cn>
>
> Use public network helpers make_sockaddr() and connect_to_addr() instead
> of using the local defined function make_socket() and connect().
>
> This make_socket() can be dropped latter.
>
> Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
> ---
> .../selftests/bpf/prog_tests/sk_lookup.c | 22 ++++++++-----------
> 1 file changed, 9 insertions(+), 13 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/sk_lookup.c b/tools/testing/selftests/bpf/prog_tests/sk_lookup.c
> index ef4a3db34c5f..a436ed8b34e0 100644
> --- a/tools/testing/selftests/bpf/prog_tests/sk_lookup.c
> +++ b/tools/testing/selftests/bpf/prog_tests/sk_lookup.c
> @@ -231,23 +231,19 @@ static int make_server(int sotype, const char *ip, int port,
>
> static int make_client(int sotype, const char *ip, int port)
> {
> + int family = is_ipv6(ip) ? AF_INET6 : AF_INET;
> + struct network_helper_opts opts = {
> + .timeout_ms = IO_TIMEOUT_SEC,
> + };
> struct sockaddr_storage addr = {0};
> - int err, fd;
> + socklen_t len;
> + int err;
>
> - fd = make_socket(sotype, ip, port, &addr);
> - if (fd < 0)
> + err = make_sockaddr(family, ip, port, &addr, &len);
> + if (!ASSERT_OK(err, "make_sockaddr"))
> return -1;
>
> - err = connect(fd, (void *)&addr, inetaddr_len(&addr));
> - if (CHECK(err, "make_client", "connect")) {
> - log_err("failed to connect client socket");
> - goto fail;
> - }
> -
> - return fd;
> -fail:
> - close(fd);
> - return -1;
> + return connect_to_addr(sotype, &addr, len, &opts);
You mentioned in v7 that ASSERT on the return value of the connect_to_addr()
breaks the test.
However, the original code does CHECK which calls test__fail(). There are
multiple tests call make_client() and some of them don't expect make_client() to
fail. It is obvious that the failure will be hidden without the ASSERT.
Something else needs to be adjusted for this refactoring. Please take a closer
look first instead of hiding the potential future errors to pass the CI.
pw-bot: cr
> }
>
> static __u64 socket_cookie(int fd)
next prev parent reply other threads:[~2024-07-05 21:56 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-05 2:58 [PATCH bpf-next v8 0/9] use network helpers, part 8 Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 1/9] selftests/bpf: Add backlog for network_helper_opts Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 2/9] selftests/bpf: Use start_server_str in sockmap_ktls Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 3/9] selftests/bpf: Use connect_to_fd_opts " Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 4/9] selftests/bpf: Use make_sockaddr " Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 5/9] selftests/bpf: Close fd in error path in drop_on_reuseport Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 6/9] selftests/bpf: Use start_server_str in sk_lookup Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 7/9] selftests/bpf: Use connect_to_fd_opts " Geliang Tang
2024-07-05 2:58 ` [PATCH bpf-next v8 8/9] selftests/bpf: Use connect_to_addr " Geliang Tang
2024-07-05 21:56 ` Martin KaFai Lau [this message]
2024-07-05 2:58 ` [PATCH bpf-next v8 9/9] selftests/bpf: Drop make_socket " Geliang Tang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=460ec092-32da-4e8d-a5e6-4ea6e8091b09@linux.dev \
--to=martin.lau@linux.dev \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=eddyz87@gmail.com \
--cc=geliang@kernel.org \
--cc=haoluo@google.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@kernel.org \
--cc=kpsingh@kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=mykolal@fb.com \
--cc=sdf@google.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=tanggeliang@kylinos.cn \
--cc=yonghong.song@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.