Skip to content

Commit 51d3750

Browse files
mannkafaiAlexei Starovoitov
authored andcommitted
selftests/bpf: Migrate fexit_noreturns case into tracing_failure test suite
Delete fexit_noreturns.c files and migrate the cases into tracing_failure.c files. The result: $ tools/testing/selftests/bpf/test_progs -t tracing_failure/fexit_noreturns #467/4 tracing_failure/fexit_noreturns:OK #467 tracing_failure:OK Summary: 1/1 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: KaFai Wan <[email protected]> Acked-by: Yonghong Song <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Alexei Starovoitov <[email protected]>
1 parent a32f6f1 commit 51d3750

File tree

4 files changed

+39
-38
lines changed

4 files changed

+39
-38
lines changed

tools/testing/selftests/bpf/prog_tests/fexit_noreturns.c

Lines changed: 0 additions & 9 deletions
This file was deleted.

tools/testing/selftests/bpf/prog_tests/tracing_failure.c

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,54 @@ static void test_bpf_spin_lock(bool is_spin_lock)
2828
tracing_failure__destroy(skel);
2929
}
3030

31-
static void test_tracing_deny(void)
31+
static void test_tracing_fail_prog(const char *prog_name, const char *exp_msg)
3232
{
3333
struct tracing_failure *skel;
34+
struct bpf_program *prog;
3435
char log_buf[256];
35-
int btf_id, err;
36-
37-
/* __rcu_read_lock depends on CONFIG_PREEMPT_RCU */
38-
btf_id = libbpf_find_vmlinux_btf_id("__rcu_read_lock", BPF_TRACE_FENTRY);
39-
if (btf_id <= 0) {
40-
test__skip();
41-
return;
42-
}
36+
int err;
4337

4438
skel = tracing_failure__open();
4539
if (!ASSERT_OK_PTR(skel, "tracing_failure__open"))
4640
return;
4741

48-
bpf_program__set_autoload(skel->progs.tracing_deny, true);
49-
bpf_program__set_log_buf(skel->progs.tracing_deny, log_buf, sizeof(log_buf));
42+
prog = bpf_object__find_program_by_name(skel->obj, prog_name);
43+
if (!ASSERT_OK_PTR(prog, "bpf_object__find_program_by_name"))
44+
goto out;
45+
46+
bpf_program__set_autoload(prog, true);
47+
bpf_program__set_log_buf(prog, log_buf, sizeof(log_buf));
5048

5149
err = tracing_failure__load(skel);
5250
if (!ASSERT_ERR(err, "tracing_failure__load"))
5351
goto out;
5452

55-
ASSERT_HAS_SUBSTR(log_buf,
56-
"Attaching tracing programs to function '__rcu_read_lock' is rejected.",
57-
"log_buf");
53+
ASSERT_HAS_SUBSTR(log_buf, exp_msg, "log_buf");
5854
out:
5955
tracing_failure__destroy(skel);
6056
}
6157

58+
static void test_tracing_deny(void)
59+
{
60+
int btf_id;
61+
62+
/* __rcu_read_lock depends on CONFIG_PREEMPT_RCU */
63+
btf_id = libbpf_find_vmlinux_btf_id("__rcu_read_lock", BPF_TRACE_FENTRY);
64+
if (btf_id <= 0) {
65+
test__skip();
66+
return;
67+
}
68+
69+
test_tracing_fail_prog("tracing_deny",
70+
"Attaching tracing programs to function '__rcu_read_lock' is rejected.");
71+
}
72+
73+
static void test_fexit_noreturns(void)
74+
{
75+
test_tracing_fail_prog("fexit_noreturns",
76+
"Attaching fexit/fmod_ret to __noreturn function 'do_exit' is rejected.");
77+
}
78+
6279
void test_tracing_failure(void)
6380
{
6481
if (test__start_subtest("bpf_spin_lock"))
@@ -67,4 +84,6 @@ void test_tracing_failure(void)
6784
test_bpf_spin_lock(false);
6885
if (test__start_subtest("tracing_deny"))
6986
test_tracing_deny();
87+
if (test__start_subtest("fexit_noreturns"))
88+
test_fexit_noreturns();
7089
}

tools/testing/selftests/bpf/progs/fexit_noreturns.c

Lines changed: 0 additions & 15 deletions
This file was deleted.

tools/testing/selftests/bpf/progs/tracing_failure.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ int BPF_PROG(tracing_deny)
2424
{
2525
return 0;
2626
}
27+
28+
SEC("?fexit/do_exit")
29+
int BPF_PROG(fexit_noreturns)
30+
{
31+
return 0;
32+
}

0 commit comments

Comments
 (0)