summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/progs/test_log_buf.c
diff options
context:
space:
mode:
authorAndrii Nakryiko <andrii@kernel.org>2021-12-09 11:38:38 -0800
committerAndrii Nakryiko <andrii@kernel.org>2021-12-10 15:29:18 -0800
commit57e889269af3dd0609933e2550c4baee7a7eb84c (patch)
tree8293245bcd9f21d92d32fcbcd9aee831e0f782c2 /tools/testing/selftests/bpf/progs/test_log_buf.c
parentdc94121b5ca17adaaabb7959c10d9c6ea504f7b1 (diff)
downloadlinux-stable-57e889269af3dd0609933e2550c4baee7a7eb84c.tar.gz
linux-stable-57e889269af3dd0609933e2550c4baee7a7eb84c.tar.bz2
linux-stable-57e889269af3dd0609933e2550c4baee7a7eb84c.zip
selftests/bpf: Add test for libbpf's custom log_buf behavior
Add a selftest that validates that per-program and per-object log_buf overrides work as expected. Also test same logic for low-level bpf_prog_load() and bpf_btf_load() APIs. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20211209193840.1248570-11-andrii@kernel.org
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_log_buf.c')
-rw-r--r--tools/testing/selftests/bpf/progs/test_log_buf.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_log_buf.c b/tools/testing/selftests/bpf/progs/test_log_buf.c
new file mode 100644
index 000000000000..199f459bd5ae
--- /dev/null
+++ b/tools/testing/selftests/bpf/progs/test_log_buf.c
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Copyright (c) 2021 Facebook */
+
+#include <linux/bpf.h>
+#include <bpf/bpf_helpers.h>
+
+int a[4];
+const volatile int off = 4000;
+
+SEC("raw_tp/sys_enter")
+int good_prog(const void *ctx)
+{
+ a[0] = (int)(long)ctx;
+ return a[1];
+}
+
+SEC("raw_tp/sys_enter")
+int bad_prog(const void *ctx)
+{
+ /* out of bounds access */
+ return a[off];
+}
+
+char _license[] SEC("license") = "GPL";