Skip to content

Commit 640e170

Browse files
neilddmitshur
authored andcommitted
[internal-branch.go1.16-vendor] http2: don't rely on system TCP buffer sizes in TestServer_MaxQueuedControlFrames
This test relies on filling up a TCP write buffer, but buffer sizes aren't under our control and can be large. Use a net.Conn wrapper that blocks instead. Updates golang/go#49076 Change-Id: I72471ef293f906b33f2a0fd81d69a3dd57f32fde Reviewed-on: https://go-review.googlesource.com/c/net/+/349932 Trust: Damien Neil <[email protected]> Run-TryBot: Damien Neil <[email protected]> TryBot-Result: Go Bot <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]> Reviewed-on: https://go-review.googlesource.com/c/net/+/357093 Reviewed-by: Dmitri Shuralyov <[email protected]>
1 parent 198b78c commit 640e170

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

http2/server_test.go

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1185,12 +1185,34 @@ func TestServer_Ping(t *testing.T) {
11851185
}
11861186
}
11871187

1188+
type filterListener struct {
1189+
net.Listener
1190+
accept func(conn net.Conn) (net.Conn, error)
1191+
}
1192+
1193+
func (l *filterListener) Accept() (net.Conn, error) {
1194+
c, err := l.Listener.Accept()
1195+
if err != nil {
1196+
return nil, err
1197+
}
1198+
return l.accept(c)
1199+
}
1200+
11881201
func TestServer_MaxQueuedControlFrames(t *testing.T) {
11891202
if testing.Short() {
11901203
t.Skip("skipping in short mode")
11911204
}
11921205

1193-
st := newServerTester(t, nil)
1206+
st := newServerTester(t, nil, func(ts *httptest.Server) {
1207+
// TCP buffer sizes on test systems aren't under our control and can be large.
1208+
// Create a conn that blocks after 10000 bytes written.
1209+
ts.Listener = &filterListener{
1210+
Listener: ts.Listener,
1211+
accept: func(conn net.Conn) (net.Conn, error) {
1212+
return newBlockingWriteConn(conn, 10000), nil
1213+
},
1214+
}
1215+
})
11941216
defer st.Close()
11951217
st.greet()
11961218

0 commit comments

Comments
 (0)