* [PATCH bpf-next 2/4] selftests/bpf: Add assertions for bpf_program__{add,clear}_flags()
[not found] <20260903092416.223294-1-toke@redhat.com>
@ 2026-09-03 9:24 ` Toke Høiland-Jørgensen
0 siblings, 0 replies; only message in thread
From: Toke Høiland-Jørgensen @ 2026-09-03 9:24 UTC (permalink / raw)
To: linux-kernel
Cc: Toke Høiland-Jørgensen, Alexei Starovoitov,
Daniel Borkmann, Andrii Nakryiko, Eduard Zingerman,
Kumar Kartikeya Dwivedi, Martin KaFai Lau, Song Liu,
Yonghong Song, Jiri Olsa, Emil Tsalapatis, Ihor Solodrai,
Shuah Khan, bpf
Add assertions that round-tripping through bpf_program__add_flags() and
bpf_program__clear_flags() ends up with the original flags value.
Arbitrarily add these to the kernel_flag test prog since that's where
we're already checking for the bpf_program__flags() value (and the test
name contains "flag").
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
---
.../selftests/bpf/prog_tests/kernel_flag.c | 20 +++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/prog_tests/kernel_flag.c b/tools/testing/selftests/bpf/prog_tests/kernel_flag.c
index 25eb59f460ab..72c0ef8da409 100644
--- a/tools/testing/selftests/bpf/prog_tests/kernel_flag.c
+++ b/tools/testing/selftests/bpf/prog_tests/kernel_flag.c
@@ -10,15 +10,31 @@ void test_kernel_flag(void)
struct test_kernel_flag *lsm_skel;
struct kfunc_call_test *skel = NULL;
struct kfunc_call_test_lskel *lskel = NULL;
+ struct bpf_program *prog;
+ __u32 flags;
int ret;
- lsm_skel = test_kernel_flag__open_and_load();
+ lsm_skel = test_kernel_flag__open();
if (!ASSERT_OK_PTR(lsm_skel, "lsm_skel"))
return;
- ASSERT_EQ(bpf_program__flags(lsm_skel->progs.bpf) & BPF_F_SLEEPABLE,
+ prog = lsm_skel->progs.bpf;
+ flags = bpf_program__flags(prog);
+ ASSERT_EQ(flags & BPF_F_SLEEPABLE,
BPF_F_SLEEPABLE, "sleepable in program flags");
+ ret = bpf_program__add_flags(prog, BPF_F_ANY_ALIGNMENT);
+ ASSERT_OK(ret, "bpf_program__add_flags ret");
+ ASSERT_EQ(bpf_program__flags(prog), flags | BPF_F_ANY_ALIGNMENT,
+ "bpf_program__add_flags value");
+
+ ret = bpf_program__clear_flags(prog, BPF_F_ANY_ALIGNMENT);
+ ASSERT_OK(ret, "bpf_program__clear_flags ret");
+ ASSERT_EQ(bpf_program__flags(prog), flags, "bpf_program__clear_flags value");
+
+ ret = test_kernel_flag__load(lsm_skel);
+ ASSERT_OK(ret, "test_kernel_flag__load");
+
lsm_skel->bss->monitored_tid = sys_gettid();
ret = test_kernel_flag__attach(lsm_skel);
--
2.55.0
^ permalink raw reply [flat|nested] only message in thread