Skip to content

fix: possible panic in client tests #992

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions client_proxy_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,16 @@ func TestHTTPProxyAndBackend(t *testing.T) {
proxyTLS := false
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Dial the websocket server through the proxy server.
dialer := Dialer{
Proxy: http.ProxyURL(proxyServerURL),
Expand Down Expand Up @@ -81,16 +81,16 @@ func TestHTTPProxyWithNetDial(t *testing.T) {
proxyTLS := false
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Dial the websocket server through the proxy server.
var netDialCalled atomic.Int64
dialer := Dialer{
Expand Down Expand Up @@ -126,16 +126,16 @@ func TestHTTPProxyWithNetDialContext(t *testing.T) {
proxyTLS := false
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Dial the websocket server through the proxy server.
var netDialCalled atomic.Int64
dialer := Dialer{
Expand Down Expand Up @@ -172,16 +172,16 @@ func TestHTTPProxyWithHTTPSBackend(t *testing.T) {
proxyTLS := false
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
var netDialTLSCalled atomic.Int64
dialer := Dialer{
Proxy: http.ProxyURL(proxyServerURL),
Expand Down Expand Up @@ -220,16 +220,16 @@ func TestHTTPSProxyAndBackend(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
dialer := Dialer{
Proxy: http.ProxyURL(proxyServerURL),
TLSClientConfig: tlsConfig(websocketTLS, proxyTLS),
Expand Down Expand Up @@ -258,16 +258,16 @@ func TestHTTPSProxyUsingNetDial(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
var netDialCalled atomic.Int64
dialer := Dialer{
NetDial: func(network, addr string) (net.Conn, error) {
Expand Down Expand Up @@ -304,16 +304,16 @@ func TestHTTPSProxyUsingNetDialContext(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
var netDialCalled atomic.Int64
dialer := Dialer{
NetDialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
Expand Down Expand Up @@ -350,16 +350,16 @@ func TestHTTPSProxyUsingNetDialTLSContext(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Configure the proxy dialing function which dials the proxy and
// performs the TLS handshake.
var proxyDialCalled atomic.Int64
Expand Down Expand Up @@ -409,16 +409,16 @@ func TestHTTPSProxyHTTPBackend(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
dialer := Dialer{
Proxy: http.ProxyURL(proxyServerURL),
TLSClientConfig: tlsConfig(websocketTLS, proxyTLS),
Expand Down Expand Up @@ -447,16 +447,16 @@ func TestHTTPSProxyUsingNetDialTLSContextWithHTTPBackend(t *testing.T) {
proxyTLS := true
// Start the websocket server, which echoes data back to sender.
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Start the proxy server.
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
var proxyDialCalled atomic.Int64
dialer := Dialer{
NetDialTLSContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
Expand Down Expand Up @@ -487,15 +487,15 @@ func TestTLSValidationErrors(t *testing.T) {
websocketTLS := true
proxyTLS := true
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
proxyServer, proxyServerURL, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Dialer without proxy CA cert fails TLS verification.
tlsError := "tls: failed to verify certificate"
dialer := Dialer{
Expand Down Expand Up @@ -535,10 +535,10 @@ func TestTLSValidationErrors(t *testing.T) {

func TestProxyFnErrorIsPropagated(t *testing.T) {
websocketServer, websocketURL, err := newWebsocketServer(false)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
// Create a Dialer where Proxy function always returns an error.
proxyURLError := errors.New("proxy URL generation error")
dialer := Dialer{
Expand All @@ -561,15 +561,15 @@ func TestProxyFnNilMeansNoProxy(t *testing.T) {
websocketTLS := false
proxyTLS := false
websocketServer, websocketURL, err := newWebsocketServer(websocketTLS)
defer websocketServer.Close()
if err != nil {
t.Fatalf("error starting websocket server: %v", err)
}
defer websocketServer.Close()
proxyServer, _, err := newProxyServer(proxyTLS)
defer proxyServer.Close()
if err != nil {
t.Fatalf("error starting proxy server: %v", err)
}
defer proxyServer.Close()
// Dialer created with Proxy URL generation function returning nil
// proxy URL, which continues with backend server connection without
// proxying.
Expand Down