Skip to content

Commit

Permalink
selftests/bpf: Use ASSERT_OK to skip ENOTSUPP
Browse files Browse the repository at this point in the history
There are so many "ENOTSUPP" (-524) errors when running BPF selftests
on a Loongarch platform since lacking BPF trampoline on Loongarch:

'''
 test_d_path_basic:PASS:setup 0 nsec
 libbpf: prog 'prog_stat': failed to attach: unknown error (-524)
 libbpf: prog 'prog_stat': failed to auto-attach: -524
 test_d_path_basic:FAIL:setup attach failed: -524
 #77/1    d_path/basic:FAIL
 #77/2    d_path/check_rdonly_mem:OK
 #77/3    d_path/check_alloc_mem:OK
 #77      d_path:FAIL
 ... ...
 test_module_attach:PASS:skel_open 0 nsec
 test_module_attach:PASS:set_attach_target 0 nsec
 test_module_attach:PASS:set_attach_target_explicit 0 nsec
 test_module_attach:PASS:skel_load 0 nsec
 libbpf: prog 'handle_fentry': failed to attach: unknown error (-524)
 libbpf: prog 'handle_fentry': failed to auto-attach: -524
 test_module_attach:FAIL:skel_attach skeleton attach failed: -524
 #167     module_attach:FAIL
 ... ...
 ringbuf_subtest:PASS:skel_open 0 nsec
 ringbuf_subtest:PASS:skel_load 0 nsec
 ringbuf_subtest:PASS:rw_cons_pos 0 nsec
 ringbuf_subtest:PASS:rw_extend 0 nsec
 ringbuf_subtest:PASS:exec_cons_pos_protect 0 nsec
 ringbuf_subtest:PASS:unmap_rw 0 nsec
 ringbuf_subtest:PASS:wr_prod_pos 0 nsec
 ringbuf_subtest:PASS:wr_prod_pos_err 0 nsec
 ringbuf_subtest:PASS:wr_data_page_one 0 nsec
 ringbuf_subtest:PASS:wr_data_page_one_err 0 nsec
 ringbuf_subtest:PASS:wr_data_page_two 0 nsec
 ringbuf_subtest:PASS:wr_data_page_all 0 nsec
 ringbuf_subtest:PASS:ro_prod_pos 0 nsec
 ringbuf_subtest:PASS:write_protect 0 nsec
 ringbuf_subtest:PASS:exec_protect 0 nsec
 ringbuf_subtest:PASS:ro_remap 0 nsec
 ringbuf_subtest:PASS:unmap_ro 0 nsec
 ringbuf_subtest:PASS:ro_prod_pos 0 nsec
 ringbuf_subtest:PASS:write_protect 0 nsec
 ringbuf_subtest:PASS:exec_protect 0 nsec
 ringbuf_subtest:PASS:ro_remap 0 nsec
 ringbuf_subtest:PASS:unmap_ro 0 nsec
 ringbuf_subtest:PASS:ringbuf_create 0 nsec
 ringbuf_subtest:FAIL:skel_attach skeleton attachment failed: -1
 #277/1   ringbuf/ringbuf:FAIL
 #277/2   ringbuf/ringbuf_n:SKIP
 #277/3   ringbuf/ringbuf_map_key:SKIP
 #277     ringbuf:FAIL
 ... ...
 test_test_bprm_opts:PASS:skel_load 0 nsec
 libbpf: prog 'secure_exec': failed to attach: unknown error (-524)
 libbpf: prog 'secure_exec': failed to auto-attach: -524
 test_test_bprm_opts:FAIL:attach attach failed: -524
 #382     test_bprm_opts:FAIL
 ... ...
 test_test_ima:PASS:skel_load 0 nsec
 test_test_ima:PASS:ringbuf 0 nsec
 libbpf: prog 'bprm_committed_creds': failed to attach: \
					unknown error (-524)
 libbpf: prog 'bprm_committed_creds': failed to auto-attach: -524
 test_test_ima:FAIL:attach attach failed: -524
 #384     test_ima:FAIL
 ... ...
 test_trace_ext:PASS:setup 0 nsec
 test_trace_ext:PASS:setup 0 nsec
 test_trace_ext:PASS:setup 0 nsec
 test_trace_ext:PASS:setup 0 nsec
 libbpf: prog 'test_pkt_md_access_new': failed to attach: \
					unknown error (-524)
 libbpf: prog 'test_pkt_md_access_new': failed to auto-attach: -524
 test_trace_ext:FAIL:setup freplace/test_pkt_md_access attach failed: -524
 #397     trace_ext:FAIL
'''

This patch uses ASSERT_OK() instead of CHECK() to skip these "ENOTSUPP"
errors. With this change, the new output of these selftests look like:

'''
 #77/1    d_path/basic:SKIP
 #77/2    d_path/check_rdonly_mem:OK
 #77/3    d_path/check_alloc_mem:OK
 #77      d_path:OK (SKIP: 1/3)
 ... ...
 #167     module_attach:SKIP
 ... ...
 #277/1   ringbuf/ringbuf:SKIP
 #277/2   ringbuf/ringbuf_n:SKIP
 #277/3   ringbuf/ringbuf_map_key:SKIP
 #277     ringbuf:SKIP
 ... ...
 #382     test_bprm_opts:SKIP
 ... ...
 #384     test_ima:SKIP
 ... ...
 #397     trace_ext:SKIP
'''

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
  • Loading branch information
Geliang Tang authored and Kernel Patches Daemon committed Jul 8, 2024
1 parent 15643a2 commit d23ee84
Show file tree
Hide file tree
Showing 6 changed files with 6 additions and 6 deletions.
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/d_path.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ static void test_d_path_basic(void)
goto cleanup;

err = test_d_path__attach(skel);
if (CHECK(err, "setup", "attach failed: %d\n", err))
if (!ASSERT_OK(err, "setup"))
goto cleanup;

bss = skel->bss;
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/module_attach.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ void test_module_attach(void)
bss = skel->bss;

err = test_module_attach__attach(skel);
if (CHECK(err, "skel_attach", "skeleton attach failed: %d\n", err))
if (!ASSERT_OK(err, "skel_attach"))
goto cleanup;

/* trigger tracepoint */
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/ringbuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ static void ringbuf_subtest(void)
goto cleanup;

err = test_ringbuf_lskel__attach(skel);
if (CHECK(err, "skel_attach", "skeleton attachment failed: %d\n", err))
if (!ASSERT_OK(err, "skel_attach"))
goto cleanup;

trigger_samples();
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/test_bprm_opts.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ void test_test_bprm_opts(void)
goto close_prog;

err = bprm_opts__attach(skel);
if (CHECK(err, "attach", "attach failed: %d\n", err))
if (!ASSERT_OK(err, "attach"))
goto close_prog;

/* Run the test with the secureexec bit unset */
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/test_ima.c
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ void test_test_ima(void)
goto close_prog;

err = ima__attach(skel);
if (CHECK(err, "attach", "attach failed: %d\n", err))
if (!ASSERT_OK(err, "attach"))
goto close_prog;

measured_dir = mkdtemp(measured_dir_template);
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/prog_tests/trace_ext.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ void test_trace_ext(void)
}

err = test_trace_ext__attach(skel_ext);
if (CHECK(err, "setup", "freplace/test_pkt_md_access attach failed: %d\n", err))
if (!ASSERT_OK(err, "setup replace/test_pkt_md_access attach"))
goto cleanup;

prog = skel_ext->progs.test_pkt_md_access_new;
Expand Down

0 comments on commit d23ee84

Please sign in to comment.