http2: fix race in TestServer_Headers_HalfCloseRemote

Wait until stream is checked before sending data.

Updates golang/go#26314

Change-Id: If8a72d5e9ad313130043d0929dd741486aa2f0cd
Reviewed-on: https://go-review.googlesource.com/123037
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/http2/server_test.go b/http2/server_test.go
index 1573889..4e70ac7 100644
--- a/http2/server_test.go
+++ b/http2/server_test.go
@@ -3844,17 +3844,17 @@
 
 func TestServer_Headers_HalfCloseRemote(t *testing.T) {
 	var st *serverTester
-	inHandler := make(chan bool)
+	writeData := make(chan bool)
 	writeHeaders := make(chan bool)
 	leaveHandler := make(chan bool)
 	st = newServerTester(t, func(w http.ResponseWriter, r *http.Request) {
-		inHandler <- true
 		if st.stream(1) == nil {
 			t.Errorf("nil stream 1 in handler")
 		}
 		if got, want := st.streamState(1), stateOpen; got != want {
 			t.Errorf("in handler, state is %v; want %v", got, want)
 		}
+		writeData <- true
 		if n, err := r.Body.Read(make([]byte, 1)); n != 0 || err != io.EOF {
 			t.Errorf("body read = %d, %v; want 0, EOF", n, err)
 		}
@@ -3873,7 +3873,7 @@
 		EndStream:     false, // keep it open
 		EndHeaders:    true,
 	})
-	<-inHandler
+	<-writeData
 	st.writeData(1, true, nil)
 
 	<-writeHeaders