From 48858a2386f7eef41cb3459e85d53ac9b1e8f70f Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 16 Nov 2016 23:41:15 +0000 Subject: [PATCH] net/http: deflake TestInterruptWithPanic_nil_h2, again Updates #17243 Change-Id: Iaa737874e75fdac73452f1fc13a5749e8df78ebe Reviewed-on: https://go-review.googlesource.com/33332 Run-TryBot: Brad Fitzpatrick Reviewed-by: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/net/http/clientserver_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/net/http/clientserver_test.go b/src/net/http/clientserver_test.go index e736e7c7dd..53556a1107 100644 --- a/src/net/http/clientserver_test.go +++ b/src/net/http/clientserver_test.go @@ -1177,10 +1177,19 @@ func testInterruptWithPanic(t *testing.T, h2 bool, panicValue interface{}) { const msg = "hello" defer afterTest(t) + testDone := make(chan struct{}) + defer close(testDone) + var errorLog lockedBytesBuffer + gotHeaders := make(chan bool, 1) cst := newClientServerTest(t, h2, HandlerFunc(func(w ResponseWriter, r *Request) { io.WriteString(w, msg) w.(Flusher).Flush() + + select { + case <-gotHeaders: + case <-testDone: + } panic(panicValue) }), func(ts *httptest.Server) { ts.Config.ErrorLog = log.New(&errorLog, "", 0) @@ -1190,6 +1199,7 @@ func testInterruptWithPanic(t *testing.T, h2 bool, panicValue interface{}) { if err != nil { t.Fatal(err) } + gotHeaders <- true defer res.Body.Close() slurp, err := ioutil.ReadAll(res.Body) if string(slurp) != msg { -- 2.50.0