diff --git a/websocket.go b/websocket.go index d59812b82dce937a46dec912f241035ac8b1c3f0..b5ca93a162a2f9ca36997786fe291d6508c41ea3 100644 --- a/websocket.go +++ b/websocket.go @@ -846,8 +846,9 @@ func (c *Conn) ping(ctx context.Context) error { case <-c.closed: return c.closeErr case <-ctx.Done(): - c.close(xerrors.Errorf("failed to ping: %w", ctx.Err())) - return ctx.Err() + err := xerrors.Errorf("failed to wait for pong: %w", ctx.Err()) + c.close(err) + return err case <-pong: return nil } diff --git a/websocket_test.go b/websocket_test.go index b1c5b9d485d74243c89cd31c1bcf1138ff48325e..922feeb348109c7c98ab1a22dfee6fb587017ba9 100644 --- a/websocket_test.go +++ b/websocket_test.go @@ -263,7 +263,6 @@ func TestHandshake(t *testing.T) { if err != nil { return err } - // Read twice to ensure the un EOFed previous reader works correctly. err = read() if err != nil { return err @@ -843,11 +842,6 @@ func benchConn(b *testing.B, echo, stream bool, size int) { if err != nil { b.Fatal(err) } - - _, err = r.Read([]byte{0}) - if !xerrors.Is(err, io.EOF) { - b.Fatalf("more data in reader than needed") - } } } b.StopTimer()