selftests/bpf: De-flake test_tcpbpf
It looks like BPF program that handles BPF_SOCK_OPS_STATE_CB state can race with the bpf_map_lookup_elem("global_map"); I sometimes see the failures in this test and re-running helps. Since we know that we expect the callback to be called 3 times (one time for listener socket, two times for both ends of the connection), let's export this number and add simple retry logic around that. Also, let's make EXPECT_EQ() not return on failure, but continue evaluating all conditions; that should make potential debugging easier. With this fix in place I don't observe the flakiness anymore. Signed-off-by:Stanislav Fomichev <sdf@google.com> Signed-off-by:
Alexei Starovoitov <ast@kernel.org> Cc: Lawrence Brakmo <brakmo@fb.com> Link: https://lore.kernel.org/bpf/20191204190955.170934-1-sdf@google.com
Showing
- tools/testing/selftests/bpf/progs/test_tcpbpf_kern.c 1 addition, 0 deletionstools/testing/selftests/bpf/progs/test_tcpbpf_kern.c
- tools/testing/selftests/bpf/test_tcpbpf.h 1 addition, 0 deletionstools/testing/selftests/bpf/test_tcpbpf.h
- tools/testing/selftests/bpf/test_tcpbpf_user.c 18 additions, 7 deletionstools/testing/selftests/bpf/test_tcpbpf_user.c
Please register or sign in to comment