From: Andrew G. Morgan Date: Tue, 5 May 2020 00:50:17 +0000 (-0700) Subject: net/http/httputil: don't use testing.T after test completes X-Git-Tag: go1.15beta1~233 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b40c6580639beb1fd24bbf8cc50f4488c245c41b;p=gostls13.git net/http/httputil: don't use testing.T after test completes This fixes a race condition where TestReverseProxyWebSocketCancelation appears to panic after otherwise passing. Fixes #38863 Change-Id: Ib89f4c40da879b92ac1fc5ed8b6e48da929e4a18 Reviewed-on: https://go-review.googlesource.com/c/go/+/232257 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/net/http/httputil/reverseproxy_test.go b/src/net/http/httputil/reverseproxy_test.go index 6a3a1c54fc..764939fb0f 100644 --- a/src/net/http/httputil/reverseproxy_test.go +++ b/src/net/http/httputil/reverseproxy_test.go @@ -1224,13 +1224,22 @@ func TestReverseProxyWebSocketCancelation(t *testing.T) { for i := 0; i < n; i++ { if _, err := bufrw.WriteString(nthResponse(i)); err != nil { - t.Errorf("Writing response #%d failed: %v", i, err) + select { + case <-triggerCancelCh: + default: + t.Errorf("Writing response #%d failed: %v", i, err) + } + return } bufrw.Flush() time.Sleep(time.Second) } if _, err := bufrw.WriteString(terminalMsg); err != nil { - t.Errorf("Failed to write terminal message: %v", err) + select { + case <-triggerCancelCh: + default: + t.Errorf("Failed to write terminal message: %v", err) + } } bufrw.Flush() }))