From 0c076032726ac1182d880ddac7abe77a90351f38 Mon Sep 17 00:00:00 2001 From: Emmanuel T Odeke Date: Fri, 27 Sep 2019 08:21:27 -0700 Subject: [PATCH] [release-branch.go1.13] net/http: remove TestTimeoutHandlerAndFlusher due to flakes Removes TestTimeoutHandlerAndFlusher due to flakes on one of the builders due to timing issues. Perhaps later, we might need to bring it back when we've figured out the timing issues. Updates #34573 Fixes #34579 Change-Id: Ia88d4da31fb228296144dc31f9a4288167fb4a53 Reviewed-on: https://go-review.googlesource.com/c/go/+/197757 Run-TryBot: Emmanuel Odeke Reviewed-by: Bryan C. Mills TryBot-Result: Gobot Gobot (cherry picked from commit 55738850c43bd1ae46326f7419dbd8f49808c776) Reviewed-on: https://go-review.googlesource.com/c/go/+/197719 Run-TryBot: Bryan C. Mills Reviewed-by: Brad Fitzpatrick Reviewed-by: Emmanuel Odeke --- src/net/http/serve_test.go | 48 -------------------------------------- 1 file changed, 48 deletions(-) diff --git a/src/net/http/serve_test.go b/src/net/http/serve_test.go index e86cc9bdd21037..1d1449aa659ef4 100644 --- a/src/net/http/serve_test.go +++ b/src/net/http/serve_test.go @@ -6161,54 +6161,6 @@ func TestUnsupportedTransferEncodingsReturn501(t *testing.T) { } } -// Issue 34439: ensure that TimeoutHandler doesn't implement Flusher -// and that any interaction with Flusher won't affect TimeoutHandler's behavior. -func TestTimeoutHandlerAndFlusher(t *testing.T) { - timeout := 50 * time.Millisecond - - handler := HandlerFunc(func(w ResponseWriter, r *Request) { - w.WriteHeader(StatusTeapot) - w.Write([]byte("line1\n")) - fl, ok := w.(Flusher) - if ok { - fl.Flush() - } - time.Sleep(timeout * 2) - w.Write([]byte("line2\n")) - }) - - cst := httptest.NewUnstartedServer(TimeoutHandler(handler, timeout, "TIMED OUT\n")) - // Provide a logger that will report an error on any superfluous log. - cst.Config.ErrorLog = log.New(&errorOnWrite{t: t}, "", 0) - cst.Start() - defer cst.Close() - - res, err := cst.Client().Get(cst.URL) - if err != nil { - t.Fatal(err) - } - defer res.Body.Close() - - if g, w := res.StatusCode, StatusServiceUnavailable; g != w { - t.Errorf("Status code mismatch\ngot: %d\nwant: %d", g, w) - } - - slurp, _ := ioutil.ReadAll(res.Body) - if g, w := string(slurp), "TIMED OUT\n"; g != w { - t.Fatalf("Body mismatch\ngot: %q\nwant: %q", g, w) - } -} - -// errorOnWrite will invoke t.Error on any attempted write. -type errorOnWrite struct { - t *testing.T -} - -func (ew *errorOnWrite) Write(b []byte) (int, error) { - ew.t.Errorf("Unexpected write: %s\n", b) - return len(b), nil -} - // fetchWireResponse is a helper for dialing to host, // sending http1ReqBody as the payload and retrieving // the response as it was sent on the wire.