type tcpLB … func (lb *tcpLB) handleConnection(in net.Conn, stopCh chan struct{ … } func (lb *tcpLB) serve(stopCh chan struct{ … } func newLB(t *testing.T, serverURL string) *tcpLB { … } const readIdleTimeout … const pingTimeout … func TestReconnectBrokenTCP(t *testing.T) { … } // 1. connect to https server with http1.1 using a TCP proxy // 2. the connection has keepalive enabled so it will be reused // 3. break the TCP connection stopping the proxy // 4. close the idle connection to force creating a new connection // 5. count that there are 2 connections to the server (we didn't reuse the original connection) func TestReconnectBrokenTCP_HTTP1(t *testing.T) { … } // 1. connect to https server with http1.1 using a TCP proxy making the connection to timeout // 2. the connection has keepalive enabled so it will be reused // 3. close the in-flight connection to force creating a new connection // 4. count that there are 2 connections on the LB but only one succeeds func TestReconnectBrokenTCPInFlight_HTTP1(t *testing.T) { … } func TestRestClientTimeout(t *testing.T) { … }