From: Geliang Tang <[email protected]>
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 <[email protected]>
---
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(); \
+ else \
+ CHECK(!___ok, (name), \
+ "unexpected %s: actual %lld < expected %lld\n", \
+ (name), (long long)(___act), (long long)(___exp));\
___ok; \
})
--
2.43.0