]> git.baikalelectronics.ru Git - kernel.git/commit
bpf, testing: Add various tail call test cases
authorDaniel Borkmann <daniel@iogearbox.net>
Fri, 22 Nov 2019 20:08:01 +0000 (21:08 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 25 Nov 2019 01:04:12 +0000 (17:04 -0800)
commit069316300553ce197b19466a0221deb0b20dd44a
tree690f7ab7802bc6fc215043adfe112fa867fb4e1f
parent16e78b7cbda4fd19e62afd4d5f19b95b8d923974
bpf, testing: Add various tail call test cases

Add several BPF kselftest cases for tail calls which test the various
patch directions, and that multiple locations are patched in same and
different programs.

  # ./test_progs -n 45
   #45/1 tailcall_1:OK
   #45/2 tailcall_2:OK
   #45/3 tailcall_3:OK
   #45/4 tailcall_4:OK
   #45/5 tailcall_5:OK
   #45 tailcalls:OK
  Summary: 1/5 PASSED, 0 SKIPPED, 0 FAILED

I've also verified the JITed dump after each of the rewrite cases that
it matches expectations.

Also regular test_verifier suite passes fine which contains further tail
call tests:

  # ./test_verifier
  [...]
  Summary: 1563 PASSED, 0 SKIPPED, 0 FAILED

Checked under JIT, interpreter and JIT + hardening.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/3d6cbecbeb171117dccfe153306e479798fb608d.1574452833.git.daniel@iogearbox.net
tools/testing/selftests/bpf/prog_tests/tailcalls.c [new file with mode: 0644]
tools/testing/selftests/bpf/progs/tailcall1.c [new file with mode: 0644]
tools/testing/selftests/bpf/progs/tailcall2.c [new file with mode: 0644]
tools/testing/selftests/bpf/progs/tailcall3.c [new file with mode: 0644]
tools/testing/selftests/bpf/progs/tailcall4.c [new file with mode: 0644]
tools/testing/selftests/bpf/progs/tailcall5.c [new file with mode: 0644]