bpf: btf: Add BTF tests
authorMartin KaFai Lau <kafai@fb.com>
Wed, 18 Apr 2018 22:56:06 +0000 (15:56 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 19 Apr 2018 19:47:42 +0000 (21:47 +0200)
commitc0fa1b6c3efc64b4ecfec658f95475fda650742e
tree59286f44ca694018a22239ed61368230ba8c4040
parent8a138aed4a807ceb143882fb23a423d524dcdb35
bpf: btf: Add BTF tests

This patch tests the BTF loading, map_create with BTF
and the changes in libbpf.

-r: Raw tests that test raw crafted BTF data
-f: Test LLVM compiled bpf prog with BTF data
-g: Test BPF_OBJ_GET_INFO_BY_FD for btf_fd
-p: Test pretty print

The tools/testing/selftests/bpf/Makefile will probe
for BTF support in llc and pahole before generating
debug info (-g) and convert them to BTF.  You can supply
the BTF supported binary through the following make variables:
LLC, BTF_PAHOLE and LLVM_OBJCOPY.

LLC: The lastest llc with -mattr=dwarfris support for the bpf target.
     It is only in the master of the llvm repo for now.
BTF_PAHOLE: The modified pahole with BTF support:
    https://github.com/iamkafai/pahole/tree/btf
    To add a BTF section: "pahole -J bpf_prog.o"
LLVM_OBJCOPY: Any llvm-objcopy should do

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Acked-by: Alexei Starovoitov <ast@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
tools/testing/selftests/bpf/Makefile
tools/testing/selftests/bpf/test_btf.c [new file with mode: 0644]
tools/testing/selftests/bpf/test_btf_haskv.c [new file with mode: 0644]
tools/testing/selftests/bpf/test_btf_nokv.c [new file with mode: 0644]