net/http2: wait for test goroutines to complete

Don't assume goroutines are gone immediately. Any error that occurs will
cause a panic after the test completes.

Fixes golang/go#41299

Change-Id: I00d3e246fd0b265a33a5dc1a536a33866df30d75
Reviewed-on: https://go-review.googlesource.com/c/net/+/254278
Reviewed-by: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Chao Xu <xuchao@google.com>
Trust: Bryan C. Mills <bcmills@google.com>
Trust: Emmanuel Odeke <emm.odeke@gmail.com>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
diff --git a/http2/transport_test.go b/http2/transport_test.go
index 2255bc4..fb4ec6c 100644
--- a/http2/transport_test.go
+++ b/http2/transport_test.go
@@ -3470,6 +3470,8 @@
 		ct.greet()
 		var buf bytes.Buffer
 		enc := hpack.NewEncoder(&buf)
+		var wg sync.WaitGroup
+		defer wg.Wait()
 		for {
 			f, err := ct.fr.ReadFrame()
 			if err != nil {
@@ -3497,7 +3499,9 @@
 					BlockFragment: buf.Bytes(),
 				})
 
+				wg.Add(1)
 				go func() {
+					defer wg.Done()
 					for i := 0; i < 2; i++ {
 						wmu.Lock()
 						if err := ct.fr.WriteData(f.StreamID, false, []byte(fmt.Sprintf("hello, this is server data frame %d", i))); err != nil {