diff mbox series

[bpf-next,v2,5/6] selftests/bpf: Skip ENOTSUPP in ASSERT_OK_PTR

Message ID 786005b19c3700f531bf998cdd75dd8a3a3f2aa7.1720146231.git.tanggeliang@kylinos.cn (mailing list archive)
State New
Headers show
Series skip ENOTSUPP BPF selftests | expand

Commit Message

Geliang Tang July 5, 2024, 2:38 a.m. UTC
From: Geliang Tang <tanggeliang@kylinos.cn>

Although the "Segmentation fault" errors are fixed in the last commit,
run bpf_tcp_ca selftests (./test_progs -t bpf_tcp_ca) on a Loongarch
platform, still some other "ENOTSUPP" (-524) errors left since lacking
BPF trampoline on Loongarch:

'''
 test_dctcp:PASS:bpf_dctcp__open_and_load 0 nsec
 test_dctcp:FAIL:bpf_map__attach_struct_ops unexpected error: -524
 #29/1    bpf_tcp_ca/dctcp:FAIL
 test_cubic:PASS:bpf_cubic__open_and_load 0 nsec
 test_cubic:FAIL:bpf_map__attach_struct_ops unexpected error: -524
 #29/2    bpf_tcp_ca/cubic:FAIL
 #29/3    bpf_tcp_ca/invalid_license:OK
 test_dctcp_fallback:PASS:dctcp_skel 0 nsec
 test_dctcp_fallback:PASS:bpf_dctcp__load 0 nsec
 test_dctcp_fallback:FAIL:dctcp link unexpected error: -524
 #29/4    bpf_tcp_ca/dctcp_fallback:FAIL
 #29/5    bpf_tcp_ca/rel_setsockopt:OK
 test_write_sk_pacing:PASS:open_and_load 0 nsec
 test_write_sk_pacing:FAIL:attach_struct_ops unexpected error: -524
 #29/6    bpf_tcp_ca/write_sk_pacing:FAIL
 #29/7    bpf_tcp_ca/incompl_cong_ops:OK
 #29/8    bpf_tcp_ca/unsupp_cong_op:OK
 test_update_ca:PASS:open 0 nsec
 test_update_ca:FAIL:attach_struct_ops unexpected error: -524
 #29/9    bpf_tcp_ca/update_ca:FAIL
 test_update_wrong:PASS:open 0 nsec
 test_update_wrong:FAIL:attach_struct_ops unexpected error: -524
 #29/10   bpf_tcp_ca/update_wrong:FAIL
 test_mixed_links:PASS:open 0 nsec
 test_mixed_links:FAIL:attach_struct_ops_nl unexpected error: -524
 test_mixed_links:FAIL:attach_struct_ops unexpected error: -524
 #29/11   bpf_tcp_ca/mixed_links:FAIL
 test_multi_links:PASS:open 0 nsec
 test_multi_links:FAIL:attach_struct_ops_1st unexpected error: -524
 test_multi_links:FAIL:attach_struct_ops_2nd unexpected error: -524
 #29/12   bpf_tcp_ca/multi_links:FAIL
 test_link_replace:PASS:open 0 nsec
 test_link_replace:FAIL:attach_struct_ops_1st unexpected error: -524
 test_link_replace:FAIL:attach_struct_ops_2nd unexpected error: -524
 #29/13   bpf_tcp_ca/link_replace:FAIL
 #29/14   bpf_tcp_ca/tcp_ca_kfunc:OK
 test_cc_cubic:PASS:bpf_cc_cubic__open_and_load 0 nsec
 test_cc_cubic:FAIL:bpf_map__attach_struct_ops unexpected error: -524
 #29/15   bpf_tcp_ca/cc_cubic:FAIL
 #29      bpf_tcp_ca:FAIL
'''

Just like in ASSERT_OK(), this patch uses test_progs_get_error() helper
to skip ENOTSUPP (524) and ENOTSUP (95) in ASSERT_OK_PTR() too.

With this change, the new output of bpf_tcp_ca selftests look like:

'''
 #29/1    bpf_tcp_ca/dctcp:SKIP
 #29/2    bpf_tcp_ca/cubic:SKIP
 #29/3    bpf_tcp_ca/invalid_license:OK
 #29/4    bpf_tcp_ca/dctcp_fallback:SKIP
 #29/5    bpf_tcp_ca/rel_setsockopt:OK
 #29/6    bpf_tcp_ca/write_sk_pacing:SKIP
 #29/7    bpf_tcp_ca/incompl_cong_ops:OK
 #29/8    bpf_tcp_ca/unsupp_cong_op:OK
 #29/9    bpf_tcp_ca/update_ca:SKIP
 #29/10   bpf_tcp_ca/update_wrong:SKIP
 #29/11   bpf_tcp_ca/mixed_links:SKIP
 #29/12   bpf_tcp_ca/multi_links:SKIP
 #29/13   bpf_tcp_ca/link_replace:SKIP
 #29/14   bpf_tcp_ca/tcp_ca_kfunc:OK
 #29/15   bpf_tcp_ca/cc_cubic:SKIP
 #29      bpf_tcp_ca:OK (SKIP: 10/15)
'''

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 tools/testing/selftests/bpf/test_progs.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h
index d1d77785b165..8ca6cd970676 100644
--- a/tools/testing/selftests/bpf/test_progs.h
+++ b/tools/testing/selftests/bpf/test_progs.h
@@ -383,7 +383,8 @@  static inline int test_progs_get_error(int error)
 	const void *___res = (ptr);					\
 	int ___err = libbpf_get_error(___res);				\
 	bool ___ok = ___err == 0;					\
-	CHECK(!___ok, (name), "unexpected error: %d\n", ___err);	\
+	if (test_progs_get_error(___err))				\
+		CHECK(!___ok, (name), "unexpected error: %d\n", ___err);\
 	___ok;								\
 })