]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: deflake TestInterruptWithPanic_nil_h2, again
authorBrad Fitzpatrick <bradfitz@golang.org>
Wed, 16 Nov 2016 23:41:15 +0000 (23:41 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 17 Nov 2016 00:15:36 +0000 (00:15 +0000)
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>

src/net/http/clientserver_test.go

index e736e7c7dd48eba2106cf346b6c59ccf0808ee72..53556a1107d8a14f98e033abff084de474c6ea4e 100644 (file)
@@ -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 {