selftests/bpf: fix test_btf_dump with O=
Subsystems (3)
PATCH 1/1 selftests/bpf: fix test_btf_dump with O=
test_btf_dump fails when run with O=, because it needs to access source files and assumes they live in ./progs/, which is not the case in this scenario.
Fix by instructing kselftest to copy btf_dump_test_case_*.c files to the test directory. Since kselftest does not preserve directory structure, adjust the test to look in ./progs/ and then in ./.
--- tools/testing/selftests/bpf/Makefile | 3 +++ tools/testing/selftests/bpf/test_btf_dump.c | 7 +++++++ 2 files changed, 10 insertions(+)
tools/testing/selftests/bpf/Makefile +3 -0
@@ -34,6 +34,9 @@ TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test BPF_OBJ_FILES = $(patsubst %.c,%.o, $(notdir $(wildcard progs/*.c))) TEST_GEN_FILES = $(BPF_OBJ_FILES) +BTF_C_FILES = $(wildcard progs/btf_dump_test_case_*.c) +TEST_FILES = $(BTF_C_FILES) + # Also test sub-register code-gen if LLVM has eBPF v3 processor support which # contains both ALU32 and JMP32 instructions. SUBREG_CODEGEN := $(shell echo "int cal(int a) { return a > 0; }" | \
tools/testing/selftests/bpf/test_btf_dump.c +7 -0
@@ -97,6 +97,13 @@ int test_btf_dump_case(int n, struct btf_dump_test_case *test_case) }snprintf (test_file,sizeof (test_file),"progs/%s.c" , test_case->name); +if (access (test_file,R_OK ) ==-1 ) +/* +* When the test is run with O=, kselftest copies TEST_FILES +* without preserving the directory structure. +*/ +snprintf (test_file,sizeof (test_file),"%s.c" , + test_case->name);/* * Diff test output and expected test output, contained between * START-EXPECTED-OUTPUT and END-EXPECTED-OUTPUT lines in test case.
Signature · 1 line
2.21.0
Quoted 9 lines · Ilya Leoshkevich
test_btf_dumpfails when run with O=, because it needs to access source files and assumes they live in ./progs/, which is not the case in this scenario.Fix by instructing kselftest to copy btf_dump_test_case_*.c files to the test directory. Since kselftest does not preserve directory structure, adjust the test to look in ./progs/ and then in ./.
Signed-off-by Ilya Leoshkevich <[email protected]>
Applied, thanks!