aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/bpf/test_tcpbpf.h
diff options
context:
space:
mode:
authorStanislav Fomichev <sdf@google.com>2019-12-04 11:09:55 -0800
committerAlexei Starovoitov <ast@kernel.org>2019-12-04 18:01:05 -0800
commitef8c84effce3c7a0b8196fcda8f430c815ab511c (patch)
tree10cc86cc9c2f54f8bf93c7e8f6da1ccfafa6c719 /tools/testing/selftests/bpf/test_tcpbpf.h
parentselftests/bpf: Bring back c++ include/link test (diff)
downloadlinux-dev-ef8c84effce3c7a0b8196fcda8f430c815ab511c.tar.xz
linux-dev-ef8c84effce3c7a0b8196fcda8f430c815ab511c.zip
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
Diffstat (limited to 'tools/testing/selftests/bpf/test_tcpbpf.h')
-rw-r--r--tools/testing/selftests/bpf/test_tcpbpf.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/test_tcpbpf.h b/tools/testing/selftests/bpf/test_tcpbpf.h
index 7bcfa6207005..6220b95cbd02 100644
--- a/tools/testing/selftests/bpf/test_tcpbpf.h
+++ b/tools/testing/selftests/bpf/test_tcpbpf.h
@@ -13,5 +13,6 @@ struct tcpbpf_globals {
__u64 bytes_received;
__u64 bytes_acked;
__u32 num_listen;
+ __u32 num_close_events;
};
#endif