aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/prog_tests/percpu_alloc.c
diff options
context:
space:
mode:
authorYonghong Song <yonghong.song@linux.dev>2023-08-27 08:28:32 -0700
committerAlexei Starovoitov <ast@kernel.org>2023-09-08 08:42:18 -0700
commit1bd7931728718bc463c43b78ab74954452e099e3 (patch)
tree3d5f5ea92c4fe0b8d3e8add120cb88f32ed605a2 /tools/testing/selftests/bpf/prog_tests/percpu_alloc.c
parentdfae1eeee9baa12e27f24a223d699326133e366b (diff)
selftests/bpf: Add some negative tests
Add a few negative tests for common mistakes with using percpu kptr including: - store to percpu kptr. - type mistach in bpf_kptr_xchg arguments. - sleepable prog with untrusted arg for bpf_this_cpu_ptr(). - bpf_percpu_obj_new && bpf_obj_drop, and bpf_obj_new && bpf_percpu_obj_drop - struct with ptr for bpf_percpu_obj_new - struct with special field (e.g., bpf_spin_lock) for bpf_percpu_obj_new Signed-off-by: Yonghong Song <yonghong.song@linux.dev> Link: https://lore.kernel.org/r/20230827152832.2002421-1-yonghong.song@linux.dev Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests/bpf/prog_tests/percpu_alloc.c')
-rw-r--r--tools/testing/selftests/bpf/prog_tests/percpu_alloc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/prog_tests/percpu_alloc.c b/tools/testing/selftests/bpf/prog_tests/percpu_alloc.c
index 41bf784a4bb3..9541e9b3a034 100644
--- a/tools/testing/selftests/bpf/prog_tests/percpu_alloc.c
+++ b/tools/testing/selftests/bpf/prog_tests/percpu_alloc.c
@@ -2,6 +2,7 @@
#include <test_progs.h>
#include "percpu_alloc_array.skel.h"
#include "percpu_alloc_cgrp_local_storage.skel.h"
+#include "percpu_alloc_fail.skel.h"
static void test_array(void)
{
@@ -107,6 +108,10 @@ close_fd:
close(cgroup_fd);
}
+static void test_failure(void) {
+ RUN_TESTS(percpu_alloc_fail);
+}
+
void test_percpu_alloc(void)
{
if (test__start_subtest("array"))
@@ -115,4 +120,6 @@ void test_percpu_alloc(void)
test_array_sleepable();
if (test__start_subtest("cgrp_local_storage"))
test_cgrp_local_storage();
+ if (test__start_subtest("failure_tests"))
+ test_failure();
}