aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2016-11-16 23:41:15 +0000
committerBrad Fitzpatrick <bradfitz@golang.org>2016-11-17 00:15:36 +0000
commit48858a2386f7eef41cb3459e85d53ac9b1e8f70f (patch)
tree9ae802c6b28d3cc1a0aedf4c5752bee9eefdcecc
parent14e9f4825bffd4339dbde43198ed1710a1e149b5 (diff)
downloadgo-48858a2386f7eef41cb3459e85d53ac9b1e8f70f.tar.xz
net/http: deflake TestInterruptWithPanic_nil_h2, again
Updates #17243 Change-Id: Iaa737874e75fdac73452f1fc13a5749e8df78ebe Reviewed-on: https://go-review.googlesource.com/33332 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
-rw-r--r--src/net/http/clientserver_test.go10
1 files changed, 10 insertions, 0 deletions
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 {