From 362e19c1c317e4c4fa98c70fbd07f6f2a5c81a51 Mon Sep 17 00:00:00 2001 From: wetcod <37023735+wetcod@users.noreply.github.com> Date: Tue, 2 Feb 2021 15:33:31 +0900 Subject: [PATCH] test: don't use foo-bar.net in TestHTTPClientMakeHTTPDialer (#5997) (#173) This test relied on connecting to the external site `foo-bar.net`, and (predictably) the site went down and broke all of our CI runs. This changes it to use local HTTP servers instead. (cherry picked from commit f54f80bf0d464ffec6facf98e447ee403bbf1e8c) Co-authored-by: Erik Grinaker --- rpc/jsonrpc/client/http_json_client_test.go | 23 ++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/rpc/jsonrpc/client/http_json_client_test.go b/rpc/jsonrpc/client/http_json_client_test.go index 830259723..5c8ef1a25 100644 --- a/rpc/jsonrpc/client/http_json_client_test.go +++ b/rpc/jsonrpc/client/http_json_client_test.go @@ -1,23 +1,36 @@ package client import ( + "io/ioutil" + "log" + "net/http" + "net/http/httptest" "testing" "github.com/stretchr/testify/require" ) func TestHTTPClientMakeHTTPDialer(t *testing.T) { - remote := []string{"https://foo-bar.com:80", "http://foo-bar.net:80", "https://user:pass@foo-bar.net:80"} + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + _, _ = w.Write([]byte("Hi!\n")) + }) + ts := httptest.NewServer(handler) + defer ts.Close() - for _, f := range remote { - u, err := newParsedURL(f) + tsTLS := httptest.NewTLSServer(handler) + defer tsTLS.Close() + // This silences a TLS handshake error, caused by the dialer just immediately + // disconnecting, which we can just ignore. + tsTLS.Config.ErrorLog = log.New(ioutil.Discard, "", 0) + + for _, testURL := range []string{ts.URL, tsTLS.URL} { + u, err := newParsedURL(testURL) require.NoError(t, err) - dialFn, err := makeHTTPDialer(f) + dialFn, err := makeHTTPDialer(testURL) require.Nil(t, err) addr, err := dialFn(u.Scheme, u.GetHostWithPath()) require.NoError(t, err) require.NotNil(t, addr) } - }