Browse Source

rpc: add missing timer.Stop calls in websocket tests (#20863)

ucwong 5 years ago
parent
commit
f7b29ec942
1 changed files with 7 additions and 5 deletions
  1. 7 5
      rpc/websocket_test.go

+ 7 - 5
rpc/websocket_test.go

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