Skip to content

Commit

Permalink
Improve names in handshake deadline test
Browse files Browse the repository at this point in the history
  • Loading branch information
dottyjones committed May 28, 2018
1 parent f90b62c commit badcf87
Showing 1 changed file with 24 additions and 22 deletions.
46 changes: 24 additions & 22 deletions client_server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -344,46 +344,48 @@ func TestDialTimeout(t *testing.T) {
}
}

// netConnDeadlineObserver fails test if read or write called without deadline.
type netConnDeadlineObserver struct {
t *testing.T
c net.Conn
read, write bool
}

func (c *netConnDeadlineObserver) SetDeadline(t time.Time) error {
c.write = !t.Equal(time.Time{})
c.read = c.write
// requireDeadlineNetConn fails the current test when Read or Write are called
// with no deadline.
type requireDeadlineNetConn struct {
t *testing.T
c net.Conn
readDeadlineIsSet bool
writeDeadlineIsSet bool
}

func (c *requireDeadlineNetConn) SetDeadline(t time.Time) error {
c.writeDeadlineIsSet = !t.Equal(time.Time{})
c.readDeadlineIsSet = c.writeDeadlineIsSet
return c.c.SetDeadline(t)
}

func (c *netConnDeadlineObserver) SetReadDeadline(t time.Time) error {
c.read = !t.Equal(time.Time{})
func (c *requireDeadlineNetConn) SetReadDeadline(t time.Time) error {
c.readDeadlineIsSet = !t.Equal(time.Time{})
return c.c.SetDeadline(t)
}

func (c *netConnDeadlineObserver) SetWriteDeadline(t time.Time) error {
c.write = !t.Equal(time.Time{})
func (c *requireDeadlineNetConn) SetWriteDeadline(t time.Time) error {
c.writeDeadlineIsSet = !t.Equal(time.Time{})
return c.c.SetDeadline(t)
}

func (c *netConnDeadlineObserver) Write(p []byte) (int, error) {
if !c.write {
func (c *requireDeadlineNetConn) Write(p []byte) (int, error) {
if !c.writeDeadlineIsSet {
c.t.Fatalf("write with no deadline")
}
return c.c.Write(p)
}

func (c *netConnDeadlineObserver) Read(p []byte) (int, error) {
if !c.read {
func (c *requireDeadlineNetConn) Read(p []byte) (int, error) {
if !c.readDeadlineIsSet {
c.t.Fatalf("read with no deadline")
}
return c.c.Read(p)
}

func (c *netConnDeadlineObserver) Close() error { return c.c.Close() }
func (c *netConnDeadlineObserver) LocalAddr() net.Addr { return c.c.LocalAddr() }
func (c *netConnDeadlineObserver) RemoteAddr() net.Addr { return c.c.RemoteAddr() }
func (c *requireDeadlineNetConn) Close() error { return c.c.Close() }
func (c *requireDeadlineNetConn) LocalAddr() net.Addr { return c.c.LocalAddr() }
func (c *requireDeadlineNetConn) RemoteAddr() net.Addr { return c.c.RemoteAddr() }

func TestHandshakeTimeout(t *testing.T) {
s := newServer(t)
Expand All @@ -392,7 +394,7 @@ func TestHandshakeTimeout(t *testing.T) {
d := cstDialer
d.NetDial = func(n, a string) (net.Conn, error) {
c, err := net.Dial(n, a)
return &netConnDeadlineObserver{c: c, t: t}, err
return &requireDeadlineNetConn{c: c, t: t}, err
}
ws, _, err := d.Dial(s.URL, nil)
if err != nil {
Expand Down

0 comments on commit badcf87

Please sign in to comment.