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 {