summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/bpf/progs/test_skeleton.c
diff options
context:
space:
mode:
authorAndrii Nakryiko <andriin@fb.com>2019-12-13 17:47:10 -0800
committerAlexei Starovoitov <ast@kernel.org>2019-12-15 16:41:12 -0800
commit330a73a7b6ca93a415de1b7da68d7a0698fe4937 (patch)
tree7f0220e2dd38b8f7c99c9b4780c97cd6513be982 /tools/testing/selftests/bpf/progs/test_skeleton.c
parent2ad97d473db57ab866f0756806bb94515f7f2551 (diff)
selftests/bpf: Add tests for libbpf-provided externs
Add a set of tests validating libbpf-provided extern variables. One crucial feature that's tested is dead code elimination together with using invalid BPF helper. CONFIG_MISSING is not supposed to exist and should always be specified by libbpf as zero, which allows BPF verifier to correctly do branch pruning and not fail validation, when invalid BPF helper is called from dead if branch. Signed-off-by: Andrii Nakryiko <andriin@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://lore.kernel.org/bpf/20191214014710.3449601-5-andriin@fb.com
Diffstat (limited to 'tools/testing/selftests/bpf/progs/test_skeleton.c')
-rw-r--r--tools/testing/selftests/bpf/progs/test_skeleton.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/progs/test_skeleton.c b/tools/testing/selftests/bpf/progs/test_skeleton.c
index c0013d2e16f2..9caa44758ea2 100644
--- a/tools/testing/selftests/bpf/progs/test_skeleton.c
+++ b/tools/testing/selftests/bpf/progs/test_skeleton.c
@@ -1,6 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
/* Copyright (c) 2019 Facebook */
+#include <stdbool.h>
#include <linux/bpf.h>
#include "bpf_helpers.h"
@@ -20,6 +21,10 @@ char out3 = 0;
long long out4 = 0;
int out1 = 0;
+extern bool CONFIG_BPF_SYSCALL;
+extern int LINUX_KERNEL_VERSION;
+bool bpf_syscall = 0;
+int kern_ver = 0;
SEC("raw_tp/sys_enter")
int handler(const void *ctx)
@@ -31,6 +36,10 @@ int handler(const void *ctx)
out3 = in3;
out4 = in4;
out5 = in5;
+
+ bpf_syscall = CONFIG_BPF_SYSCALL;
+ kern_ver = LINUX_KERNEL_VERSION;
+
return 0;
}