summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/prog_tests
diff options
context:
space:
mode:
authorBenjamin Tissoires <bentiss@kernel.org>2024-04-20 12:09:16 +0300
committerAlexei Starovoitov <ast@kernel.org>2024-04-24 05:46:57 +0300
commit8290dba51910d36721ced6ccf03049ed6b7ea2ce (patch)
tree93ee7e7ef3781f5b19811715f4dc05a5a78c06cb /tools/testing/selftests/bpf/prog_tests
parent8e83da9732d91c60fdc651b2486c8e5935eb0ca2 (diff)
downloadlinux-8290dba51910d36721ced6ccf03049ed6b7ea2ce.tar.xz
selftests/bpf: wq: add bpf_wq_start() checks
Allows to test if allocation/free works Signed-off-by: Benjamin Tissoires <bentiss@kernel.org> Link: https://lore.kernel.org/r/20240420-bpf_wq-v2-16-6c986a5a741f@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests')
-rw-r--r--tools/testing/selftests/bpf/prog_tests/wq.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/wq.c b/tools/testing/selftests/bpf/prog_tests/wq.c
index 26ab69796103..8a4a91d944cc 100644
--- a/tools/testing/selftests/bpf/prog_tests/wq.c
+++ b/tools/testing/selftests/bpf/prog_tests/wq.c
@@ -6,9 +6,31 @@
void serial_test_wq(void)
{
+ struct wq *wq_skel = NULL;
+ int err, prog_fd;
+
LIBBPF_OPTS(bpf_test_run_opts, topts);
RUN_TESTS(wq);
+
+ /* re-run the success test to check if the timer was actually executed */
+
+ wq_skel = wq__open_and_load();
+ if (!ASSERT_OK_PTR(wq_skel, "wq_skel_load"))
+ return;
+
+ err = wq__attach(wq_skel);
+ if (!ASSERT_OK(err, "wq_attach"))
+ return;
+
+ prog_fd = bpf_program__fd(wq_skel->progs.test_syscall_array_sleepable);
+ err = bpf_prog_test_run_opts(prog_fd, &topts);
+ ASSERT_OK(err, "test_run");
+ ASSERT_EQ(topts.retval, 0, "test_run");
+
+ usleep(50); /* 10 usecs should be enough, but give it extra */
+
+ ASSERT_EQ(wq_skel->bss->ok_sleepable, (1 << 1), "ok_sleepable");
}
void serial_test_failures_wq(void)