From 648f3febf54465162e095da99149de7a839576c6 Mon Sep 17 00:00:00 2001 From: Damien Neil Date: Wed, 30 Nov 2022 13:43:45 -0500 Subject: [PATCH] net/http: deflake and fix TestWrappedResponseController Read the full (empty) response body before closing it, to avoid cancelling the request while the server handler is still running. Wrap the ResponseWriter before calling NewResponseController: This test is intended to verify that wrapping the controller works properly, but neglected to actually wrap the controller. Fixes #56961. Change-Id: I00269f897448ab34676338707b7a04d19ff17963 Reviewed-on: https://go-review.googlesource.com/c/go/+/453860 Run-TryBot: Damien Neil Reviewed-by: Bryan Mills TryBot-Result: Gopher Robot --- src/net/http/responsecontroller_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/net/http/responsecontroller_test.go b/src/net/http/responsecontroller_test.go index d947504f50..0dca7332b7 100644 --- a/src/net/http/responsecontroller_test.go +++ b/src/net/http/responsecontroller_test.go @@ -244,6 +244,7 @@ func (w wrapWriter) Unwrap() ResponseWriter { func TestWrappedResponseController(t *testing.T) { run(t, testWrappedResponseController) } func testWrappedResponseController(t *testing.T, mode testMode) { cst := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) { + w = wrapWriter{w} ctl := NewResponseController(w) if err := ctl.Flush(); err != nil { t.Errorf("ctl.Flush() = %v, want nil", err) @@ -259,5 +260,6 @@ func testWrappedResponseController(t *testing.T, mode testMode) { if err != nil { t.Fatalf("unexpected connection error: %v", err) } + io.Copy(io.Discard, res.Body) defer res.Body.Close() } -- 2.50.0