diff --git a/command/agent/http_test.go b/command/agent/http_test.go index 4fd6b39b3..dddc8f82c 100644 --- a/command/agent/http_test.go +++ b/command/agent/http_test.go @@ -13,6 +13,7 @@ import ( "net/http" "net/http/httptest" "net/url" + "os" "strings" "testing" "time" @@ -997,7 +998,8 @@ func TestHTTPServer_Limits_OK(t *testing.T) { // timed out. require.True(t, time.Now().After(readDeadline)) - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) } assertNoLimit := func(t *testing.T, addr string) { @@ -1030,7 +1032,8 @@ func TestHTTPServer_Limits_OK(t *testing.T) { case <-time.After(2 * time.Second): t.Fatalf("timed out waiting for conn error %d", i) case err := <-errCh: - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) } } } diff --git a/nomad/rpc_test.go b/nomad/rpc_test.go index bee07a9f5..f92087892 100644 --- a/nomad/rpc_test.go +++ b/nomad/rpc_test.go @@ -3,6 +3,7 @@ package nomad import ( "context" "crypto/tls" + "errors" "fmt" "io" "net" @@ -696,7 +697,9 @@ func TestRPC_Limits_OK(t *testing.T) { require.Truef(t, now.After(readDeadline), "Client read deadline (%s) should be in the past (before %s)", readDeadline, now) - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) + return } @@ -739,7 +742,8 @@ func TestRPC_Limits_OK(t *testing.T) { conn.SetReadDeadline(readDeadline) n, err = conn.Read(buf) require.Zero(t, n) - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) } assertNoLimit := func(t *testing.T, addr string) { @@ -773,7 +777,8 @@ func TestRPC_Limits_OK(t *testing.T) { case <-deadline: t.Fatalf("timed out waiting for conn error %d/%d", i+1, maxConns) case err := <-errCh: - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) } } } @@ -983,7 +988,8 @@ func TestRPC_Limits_Streaming(t *testing.T) { conn.SetReadDeadline(time.Now().Add(1 * time.Second)) _, err = conn.Read(buf) - testutil.RequireDeadlineErr(t, err) + require.Truef(t, errors.Is(err, os.ErrDeadlineExceeded), + "error does not wrap os.ErrDeadlineExceeded: (%T) %v", err, err) // Close 1 streamer and assert another is allowed t.Logf("expect streaming connection 0 to exit with error") @@ -1002,7 +1008,7 @@ func TestRPC_Limits_Streaming(t *testing.T) { return false, fmt.Errorf("connection was rejected") } - testutil.RequireDeadlineErr(t, err) + require.True(t, errors.Is(err, os.ErrDeadlineExceeded)) return true, nil }, func(err error) { require.NoError(t, err) diff --git a/testutil/net.go b/testutil/net.go deleted file mode 100644 index bd8813305..000000000 --- a/testutil/net.go +++ /dev/null @@ -1,22 +0,0 @@ -package testutil - -import ( - "net" - - testing "github.com/mitchellh/go-testing-interface" - "github.com/stretchr/testify/require" -) - -// RequireDeadlineErr requires that an error be caused by a net.Conn's deadline -// being reached (after being set by conn.Set{Read,Write}Deadline or -// SetDeadline). -func RequireDeadlineErr(t testing.T, err error) { - t.Helper() - - require.NotNil(t, err) - netErr, ok := err.(net.Error) - require.Truef(t, ok, "error does not implement net.Error: (%T) %v", err, err) - require.Contains(t, netErr.Error(), ": i/o timeout") - require.True(t, netErr.Timeout()) - require.True(t, netErr.Temporary()) -}