mirror of
https://github.com/golang/go
synced 2024-11-26 02:57:57 -07:00
net/http: fix flaky TestDisableKeepAliveUpgrade
This test hijacks a connection. It was reading from the net.Conn returned by Hijack, not the bufio.ReadWriter, causing flaky failures when a read-ahead byte was held in the read buffer. Fixes #43073. Change-Id: Ic3e7f704fba9635fd851cb3c0c0c74e312b75f6e Reviewed-on: https://go-review.googlesource.com/c/go/+/285596 Trust: Damien Neil <dneil@google.com> Run-TryBot: Damien Neil <dneil@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Anmol Sethi <nhooyr@gmail.com>
This commit is contained in:
parent
50cba0506f
commit
7ece3a7b17
@ -6460,13 +6460,15 @@ func TestDisableKeepAliveUpgrade(t *testing.T) {
|
||||
w.Header().Set("Connection", "Upgrade")
|
||||
w.Header().Set("Upgrade", "someProto")
|
||||
w.WriteHeader(StatusSwitchingProtocols)
|
||||
c, _, err := w.(Hijacker).Hijack()
|
||||
c, buf, err := w.(Hijacker).Hijack()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
io.Copy(c, c)
|
||||
// Copy from the *bufio.ReadWriter, which may contain buffered data.
|
||||
// Copy to the net.Conn, to avoid buffering the output.
|
||||
io.Copy(c, buf)
|
||||
}))
|
||||
s.Config.SetKeepAlivesEnabled(false)
|
||||
s.Start()
|
||||
|
Loading…
Reference in New Issue
Block a user