]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: use t.Deadline instead of an arbitrary timeout in TestServerConnState
authorBryan C. Mills <bcmills@google.com>
Wed, 11 Mar 2020 14:24:14 +0000 (10:24 -0400)
committerBryan C. Mills <bcmills@google.com>
Wed, 11 Mar 2020 15:55:54 +0000 (15:55 +0000)
Updates #37322

Change-Id: I3b8369cd9e0ed5e4b3136cedaa2f70698ead2270
Reviewed-on: https://go-review.googlesource.com/c/go/+/222957
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
src/net/http/serve_test.go

index aa6d87251d028278ec0fd76c5c0cb1b13d02a1db..21ee7f33c8b2b41f85ee26cc39aa1c4af57ffd28 100644 (file)
@@ -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()
                }