INNER CODE UNIT · Go
halfCloseIdleTimeout
docker/compose · relay/main_test.go:109
halfCloseIdleTimeout = 200 * time.Millisecond
t.Cleanup(func() { halfCloseIdleTimeout = restore })
upstream := silentUpstream(t)
client, server := tcpPair(t)
t.Cleanup(func() { _ = client.Close() })
finished := make(chan struct{})
go func() {
forward(server, upstream.Addr().String())
close(finished)
}()
if _, err := client.Write([]byte("request")); err != nil {
t.Fatal(err)
}
_ = client.Close() // downstream fully gone: down->up finishes, up->down survives