INNER CODE UNIT · Go
TestForwardKeepsStreamingAfterHalfClose
docker/compose · relay/main_test.go:137
func TestForwardKeepsStreamingAfterHalfClose(t *testing.T) {
restore := halfCloseIdleTimeout
halfCloseIdleTimeout = 300 * time.Millisecond
t.Cleanup(func() { halfCloseIdleTimeout = restore })
upstream, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
t.Fatal(err)
}
t.Cleanup(func() { _ = upstream.Close() })
const chunks = 6
go func() {
conn, err := upstream.Accept()
if err != nil {
return
}
defer func() { _ = conn.Close() }()
// stream chunks for well past the idle grace, each within it