|
|
|
@ -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 |
|
|
|
|
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 |
|
|
|
|