selftests/bpf: Fix test_run logic in fexit_stress.c
authorYuntao Wang <ytcoode@gmail.com>
Sat, 21 May 2022 15:13:29 +0000 (23:13 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Thu, 2 Jun 2022 23:26:40 +0000 (16:26 -0700)
In the commit da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING"),
the bpf_fentry_test1 function was moved into bpf_prog_test_run_tracing(),
which is the test_run function of the tracing BPF programs.

Thus calling 'bpf_prog_test_run_opts(filter_fd, &topts)' will not trigger
bpf_fentry_test1 function as filter_fd is a sk_filter BPF program.

Fix it by replacing filter_fd with fexit_fd in the bpf_prog_test_run_opts()
function.

Fixes: da00d2f117a0 ("bpf: Add test ops for BPF_PROG_TYPE_TRACING")
Signed-off-by: Yuntao Wang <ytcoode@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20220521151329.648013-1-ytcoode@gmail.com
tools/testing/selftests/bpf/prog_tests/fexit_stress.c

index a7e74297f15f5ca052fa76f32c2357ee3e32f170..5a7e6011f6bf97047ac14fc9885de22d275bd6e3 100644 (file)
@@ -7,11 +7,9 @@
 
 void serial_test_fexit_stress(void)
 {
-       char test_skb[128] = {};
        int fexit_fd[CNT] = {};
        int link_fd[CNT] = {};
-       char error[4096];
-       int err, i, filter_fd;
+       int err, i;
 
        const struct bpf_insn trace_program[] = {
                BPF_MOV64_IMM(BPF_REG_0, 0),
@@ -20,25 +18,9 @@ void serial_test_fexit_stress(void)
 
        LIBBPF_OPTS(bpf_prog_load_opts, trace_opts,
                .expected_attach_type = BPF_TRACE_FEXIT,
-               .log_buf = error,
-               .log_size = sizeof(error),
        );
 
-       const struct bpf_insn skb_program[] = {
-               BPF_MOV64_IMM(BPF_REG_0, 0),
-               BPF_EXIT_INSN(),
-       };
-
-       LIBBPF_OPTS(bpf_prog_load_opts, skb_opts,
-               .log_buf = error,
-               .log_size = sizeof(error),
-       );
-
-       LIBBPF_OPTS(bpf_test_run_opts, topts,
-               .data_in = test_skb,
-               .data_size_in = sizeof(test_skb),
-               .repeat = 1,
-       );
+       LIBBPF_OPTS(bpf_test_run_opts, topts);
 
        err = libbpf_find_vmlinux_btf_id("bpf_fentry_test1",
                                         trace_opts.expected_attach_type);
@@ -58,15 +40,9 @@ void serial_test_fexit_stress(void)
                        goto out;
        }
 
-       filter_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, NULL, "GPL",
-                                 skb_program, sizeof(skb_program) / sizeof(struct bpf_insn),
-                                 &skb_opts);
-       if (!ASSERT_GE(filter_fd, 0, "test_program_loaded"))
-               goto out;
+       err = bpf_prog_test_run_opts(fexit_fd[0], &topts);
+       ASSERT_OK(err, "bpf_prog_test_run_opts");
 
-       err = bpf_prog_test_run_opts(filter_fd, &topts);
-       close(filter_fd);
-       CHECK_FAIL(err);
 out:
        for (i = 0; i < CNT; i++) {
                if (link_fd[i])