diff --git a/src/pkg/net/http/transport_test.go b/src/pkg/net/http/transport_test.go index de1a6e275b..3e6235a6c2 100644 --- a/src/pkg/net/http/transport_test.go +++ b/src/pkg/net/http/transport_test.go @@ -2041,8 +2041,10 @@ func (f closerFunc) Close() error { return f() } // Issue 6981 func TestTransportClosesBodyOnError(t *testing.T) { defer afterTest(t) + readBody := make(chan error, 1) ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { - ioutil.ReadAll(r.Body) + _, err := ioutil.ReadAll(r.Body) + readBody <- err })) defer ts.Close() fakeErr := errors.New("fake error") @@ -2068,6 +2070,14 @@ func TestTransportClosesBodyOnError(t *testing.T) { t.Fatalf("Do error = %v; want something containing %q", fakeErr.Error()) } select { + case err := <-readBody: + if err == nil { + t.Errorf("Unexpected success reading request body from handler; want 'unexpected EOF reading trailer'") + } + case <-time.After(5 * time.Second): + t.Error("timeout waiting for server handler to complete") + } + select { case <-didClose: default: t.Errorf("didn't see Body.Close")