|
|
@@ -142,6 +142,7 @@ func TestClientWebsocketPing(t *testing.T) {
|
|
|
|
|
|
// Wait for the subscription result.
|
|
|
timeout := time.NewTimer(5 * time.Second)
|
|
|
+ defer timeout.Stop()
|
|
|
for {
|
|
|
select {
|
|
|
case err := <-sub.Err():
|
|
|
@@ -227,9 +228,11 @@ func wsPingTestHandler(t *testing.T, conn *websocket.Conn, shutdown, sendPing <-
|
|
|
|
|
|
// Write messages.
|
|
|
var (
|
|
|
- sendResponse <-chan time.Time
|
|
|
- wantPong string
|
|
|
+ wantPong string
|
|
|
+ timer = time.NewTimer(0)
|
|
|
)
|
|
|
+ defer timer.Stop()
|
|
|
+ <-timer.C
|
|
|
for {
|
|
|
select {
|
|
|
case _, open := <-sendPing:
|
|
|
@@ -246,11 +249,10 @@ func wsPingTestHandler(t *testing.T, conn *websocket.Conn, shutdown, sendPing <-
|
|
|
t.Errorf("got pong with wrong data %q", data)
|
|
|
}
|
|
|
wantPong = ""
|
|
|
- sendResponse = time.NewTimer(200 * time.Millisecond).C
|
|
|
- case <-sendResponse:
|
|
|
+ timer.Reset(200 * time.Millisecond)
|
|
|
+ case <-timer.C:
|
|
|
t.Logf("server sending response")
|
|
|
conn.WriteMessage(websocket.TextMessage, []byte(subNotify))
|
|
|
- sendResponse = nil
|
|
|
case <-shutdown:
|
|
|
conn.Close()
|
|
|
return
|