diff --git a/test/syscalls/linux/socket_inet_loopback.cc b/test/syscalls/linux/socket_inet_loopback.cc index 08348f1c2..56e2974bc 100644 --- a/test/syscalls/linux/socket_inet_loopback.cc +++ b/test/syscalls/linux/socket_inet_loopback.cc @@ -1571,7 +1571,13 @@ TEST_P(SocketInetLoopbackTest, TCPDeferAcceptTimeout) { // Verify that there is no acceptable connection before TCP_DEFER_ACCEPT // timeout is hit. + const auto start = absl::Now(); absl::SleepFor(absl::Seconds(kTCPDeferAccept - 1)); + // It's possible that we ended up sleeping for longer than the + // TCP_DEFER_ACCEPT timeout. If this happens, skip this test. + if (absl::Now() >= start + absl::Seconds(kTCPDeferAccept)) { + GTEST_SKIP(); + } ASSERT_THAT(accept(listen_fd.get(), nullptr, nullptr), SyscallFailsWithErrno(EWOULDBLOCK));