http2: eliminate arbitrary timeouts in readFrame methods

Certain slower builders empirically do not finish before these
timeouts, and if a real deadlock should occur it would be more useful
to let the test itself time out and get a goroutine dump anyway.

Fixes golang/go#50556
Fixes golang/go#34615

Change-Id: I53ea616faa34f4ccc73af8eb18b794e12271b883
Reviewed-on: https://go-review.googlesource.com/c/net/+/377814
Trust: Bryan Mills <bcmills@google.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Trust: Benny Siegert <bsiegert@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/http2/server_test.go b/http2/server_test.go
index 23d8a62..ae45f31 100644
--- a/http2/server_test.go
+++ b/http2/server_test.go
@@ -478,31 +478,8 @@
 	}
 }
 
-func readFrameTimeout(fr *Framer, wait time.Duration) (Frame, error) {
-	ch := make(chan interface{}, 1)
-	go func() {
-		fr, err := fr.ReadFrame()
-		if err != nil {
-			ch <- err
-		} else {
-			ch <- fr
-		}
-	}()
-	t := time.NewTimer(wait)
-	select {
-	case v := <-ch:
-		t.Stop()
-		if fr, ok := v.(Frame); ok {
-			return fr, nil
-		}
-		return nil, v.(error)
-	case <-t.C:
-		return nil, errors.New("timeout waiting for frame")
-	}
-}
-
 func (st *serverTester) readFrame() (Frame, error) {
-	return readFrameTimeout(st.fr, 2*time.Second)
+	return st.fr.ReadFrame()
 }
 
 func (st *serverTester) wantHeaders() *HeadersFrame {
diff --git a/http2/transport_test.go b/http2/transport_test.go
index 1d2210f..1cdd981 100644
--- a/http2/transport_test.go
+++ b/http2/transport_test.go
@@ -863,7 +863,7 @@
 }
 
 func (ct *clientTester) readFrame() (Frame, error) {
-	return readFrameTimeout(ct.fr, 2*time.Second)
+	return ct.fr.ReadFrame()
 }
 
 func (ct *clientTester) firstHeaders() (*HeadersFrame, error) {