mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 10:25:42 +03:00
use os.ErrDeadlineExceeded in tests
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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())
|
||||
}
|
||||
Reference in New Issue
Block a user