Re: [PATCH 6/6] selftests/bpf: Skip ENOTSUPP in ASSERT_GE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 3, 2024 at 11:48 PM Geliang Tang <geliang@xxxxxxxxxx> wrote:
>
> From: Geliang Tang <tanggeliang@xxxxxxxxxx>
>
> There are still some "ENOTSUPP" (-524) errors left when running BPF
> selftests on a Loongarch platform since ASSERT_GE() are used there to
> check the return values, not ASSERT_OK():
>
> '''
>  test_bpf_cookie:PASS:skel_open 0 nsec
>  #17/1    bpf_cookie/kprobe:OK
>  #17/2    bpf_cookie/multi_kprobe_link_api:OK
>  #17/3    bpf_cookie/multi_kprobe_attach_api:OK
>  #17/4    bpf_cookie/uprobe:OK
>  #17/5    bpf_cookie/multi_uprobe_attach_api:OK
>  #17/6    bpf_cookie/tracepoint:OK
>  #17/7    bpf_cookie/perf_event:OK
>  tracing_subtest:FAIL:fentry.link_create unexpected fentry.link_create: \
>                                                 actual -524 < expected 0
>  #17/8    bpf_cookie/trampoline:FAIL
>  lsm_subtest:FAIL:lsm.link_create unexpected lsm.link_create: \
>                                                 actual -524 < expected 0
>  #17/9    bpf_cookie/lsm:FAIL
>  #17/10   bpf_cookie/tp_btf:OK
>  #17/11   bpf_cookie/raw_tp:OK
>  #17      bpf_cookie:FAIL
>  ... ...
>  test_module_fentry_shadow:PASS:load_vmlinux_btf 0 nsec
>  test_module_fentry_shadow:PASS:get_bpf_testmod_btf_fd 0 nsec
>  test_module_fentry_shadow:PASS:btf_get_from_fd 0 nsec
>  test_module_fentry_shadow:PASS:btf_find_by_name 0 nsec
>  test_module_fentry_shadow:PASS:btf_find_by_name 0 nsec
>  test_module_fentry_shadow:PASS:bpf_prog_load 0 nsec
>  test_module_fentry_shadow:FAIL:bpf_link_create unexpected \
>                                 bpf_link_create: actual -524 < expected 0
>  #168     module_fentry_shadow:FAIL
> '''
>
> Just like in ASSERT_OK(), this patch skips ENOTSUPP (524) and ENOTSUP (95)
> in ASSERT_GT() too. With this change, the new output of these selftests
> look like:
>
> '''
>  #17/1    bpf_cookie/kprobe:OK
>  #17/2    bpf_cookie/multi_kprobe_link_api:OK
>  #17/3    bpf_cookie/multi_kprobe_attach_api:OK
>  #17/4    bpf_cookie/uprobe:OK
>  #17/5    bpf_cookie/multi_uprobe_attach_api:OK
>  #17/6    bpf_cookie/tracepoint:OK
>  #17/7    bpf_cookie/perf_event:OK
>  #17/8    bpf_cookie/trampoline:SKIP
>  #17/9    bpf_cookie/lsm:SKIP
>  #17/10   bpf_cookie/tp_btf:SKIP
>  #17/11   bpf_cookie/raw_tp:SKIP
>  #17      bpf_cookie:OK (SKIP: 4/11)
>  ... ...
>  #168     module_fentry_shadow:SKIP
> '''
>
> Signed-off-by: Geliang Tang <tanggeliang@xxxxxxxxxx>
> ---
>  tools/testing/selftests/bpf/test_progs.h | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h
> index 464aa12feada..8a5ce360aa1c 100644
> --- a/tools/testing/selftests/bpf/test_progs.h
> +++ b/tools/testing/selftests/bpf/test_progs.h
> @@ -294,9 +294,13 @@ int test__join_cgroup(const char *path);
>         typeof(actual) ___act = (actual);                               \
>         typeof(expected) ___exp = (expected);                           \
>         bool ___ok = ___act >= ___exp;                                  \
> -       CHECK(!___ok, (name),                                           \
> -             "unexpected %s: actual %lld < expected %lld\n",           \
> -             (name), (long long)(___act), (long long)(___exp));        \
> +       if (___act == -ENOTSUPP || ___act == -ENOTSUP ||                \
> +           errno == ENOTSUPP || errno == ENOTSUP)                      \
> +               test__skip();                                           \

absolutely not, if ENOTSUP or ENOTSUPP is special for some tests, that
should be handled explicitly. This is not correct in general and we
should not just silently skip some test on such errors.

> +       else                                                            \
> +               CHECK(!___ok, (name),                                   \
> +                     "unexpected %s: actual %lld < expected %lld\n",   \
> +                     (name), (long long)(___act), (long long)(___exp));\
>         ___ok;                                                          \
>  })
>
> --
> 2.43.0
>





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux