From 0e3ace42f5a06a2472662da08105d6c956f4eef1 Mon Sep 17 00:00:00 2001 From: "Bryan C. Mills" Date: Wed, 11 Mar 2020 10:24:14 -0400 Subject: [PATCH] net/http: use t.Deadline instead of an arbitrary timeout in TestServerConnState Updates #37322 Change-Id: I3b8369cd9e0ed5e4b3136cedaa2f70698ead2270 Reviewed-on: https://go-review.googlesource.com/c/go/+/222957 Run-TryBot: Bryan C. Mills TryBot-Result: Gobot Gobot Reviewed-by: Alexander Rakoczy --- src/net/http/serve_test.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/net/http/serve_test.go b/src/net/http/serve_test.go index aa6d87251d..21ee7f33c8 100644 --- a/src/net/http/serve_test.go +++ b/src/net/http/serve_test.go @@ -4135,10 +4135,19 @@ func TestServerConnState(t *testing.T) { doRequests() - timer := time.NewTimer(5 * time.Second) + stateDelay := 5 * time.Second + if deadline, ok := t.Deadline(); ok { + // Allow an arbitrarily long delay. + // This test was observed to be flaky on the darwin-arm64-corellium builder, + // so we're increasing the deadline to see if it starts passing. + // See https://golang.org/issue/37322. + const arbitraryCleanupMargin = 1 * time.Second + stateDelay = time.Until(deadline) - arbitraryCleanupMargin + } + timer := time.NewTimer(stateDelay) select { case <-timer.C: - t.Errorf("Timed out waiting for connection to change state.") + t.Errorf("Timed out after %v waiting for connection to change state.", stateDelay) case <-complete: timer.Stop() } -- 2.48.1