]> Cypherpunks repositories - gostls13.git/commitdiff
net/http/httputil: don't use testing.T after test completes
authorAndrew G. Morgan <agm@google.com>
Tue, 5 May 2020 00:50:17 +0000 (17:50 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 5 May 2020 03:40:39 +0000 (03:40 +0000)
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 <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>

src/net/http/httputil/reverseproxy_test.go

index 6a3a1c54fcc417d63a1aed71cb730056213817cc..764939fb0f0c26a6f2511e603d9cc9237808e4a4 100644 (file)
@@ -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()
        }))