[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LRH.2.21.2009291333310.26076@localhost>
Date: Tue, 29 Sep 2020 13:35:26 +0100 (IST)
From: Alan Maguire <alan.maguire@...cle.com>
To: Toke Høiland-Jørgensen <toke@...hat.com>
cc: daniel@...earbox.net, ast@...com, bpf@...r.kernel.org,
netdev@...r.kernel.org, Alan Maguire <alan.maguire@...cle.com>
Subject: Re: [PATCH bpf-next] selftests/bpf_iter: don't fail test due to
missing __builtin_btf_type_id
On Tue, 29 Sep 2020, Toke Høiland-Jørgensen wrote:
> The new test for task iteration in bpf_iter checks (in do_btf_read()) if it
> should be skipped due to missing __builtin_btf_type_id. However, this
> 'skip' verdict is not propagated to the caller, so the parent test will
> still fail. Fix this by also skipping the rest of the parent test if the
> skip condition was reached.
>
> Fixes: b72091bd4ee4 ("selftests/bpf: Add test for bpf_seq_printf_btf helper")
> Signed-off-by: Toke Høiland-Jørgensen <toke@...hat.com>
Reviewed-by: Alan Maguire <alan.maguire@...cle.com>
Thanks for fixing this Toke!
> ---
> tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> index af15630a24dd..448885b95eed 100644
> --- a/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> +++ b/tools/testing/selftests/bpf/prog_tests/bpf_iter.c
> @@ -172,17 +172,18 @@ static void test_task_file(void)
>
> static char taskbuf[TASKBUFSZ];
>
> -static void do_btf_read(struct bpf_iter_task_btf *skel)
> +static int do_btf_read(struct bpf_iter_task_btf *skel)
> {
> struct bpf_program *prog = skel->progs.dump_task_struct;
> struct bpf_iter_task_btf__bss *bss = skel->bss;
> int iter_fd = -1, len = 0, bufleft = TASKBUFSZ;
> struct bpf_link *link;
> char *buf = taskbuf;
> + int ret = 0;
>
> link = bpf_program__attach_iter(prog, NULL);
> if (CHECK(IS_ERR(link), "attach_iter", "attach_iter failed\n"))
> - return;
> + return ret;
>
> iter_fd = bpf_iter_create(bpf_link__fd(link));
> if (CHECK(iter_fd < 0, "create_iter", "create_iter failed\n"))
> @@ -198,6 +199,7 @@ static void do_btf_read(struct bpf_iter_task_btf *skel)
>
> if (bss->skip) {
> printf("%s:SKIP:no __builtin_btf_type_id\n", __func__);
> + ret = 1;
> test__skip();
> goto free_link;
> }
> @@ -212,12 +214,14 @@ static void do_btf_read(struct bpf_iter_task_btf *skel)
> if (iter_fd > 0)
> close(iter_fd);
> bpf_link__destroy(link);
> + return ret;
> }
>
> static void test_task_btf(void)
> {
> struct bpf_iter_task_btf__bss *bss;
> struct bpf_iter_task_btf *skel;
> + int ret;
>
> skel = bpf_iter_task_btf__open_and_load();
> if (CHECK(!skel, "bpf_iter_task_btf__open_and_load",
> @@ -226,7 +230,9 @@ static void test_task_btf(void)
>
> bss = skel->bss;
>
> - do_btf_read(skel);
> + ret = do_btf_read(skel);
> + if (ret)
> + goto cleanup;
>
> if (CHECK(bss->tasks == 0, "check if iterated over tasks",
> "no task iteration, did BPF program run?\n"))
> --
> 2.28.0
>
>
Powered by blists - more mailing lists