diff --git a/swarm/network/streamer_test.go b/swarm/network/streamer_test.go index ba9800232e..93ae2551d0 100644 --- a/swarm/network/streamer_test.go +++ b/swarm/network/streamer_test.go @@ -17,6 +17,7 @@ package network import ( + "errors" "io/ioutil" "os" "testing" @@ -113,18 +114,9 @@ func TestStreamerRegisterIncoming(t *testing.T) { }, nil }) - tick := time.NewTicker(10 * time.Millisecond) - timeout := time.NewTimer(1 * time.Second) -WAIT: - for { - select { - case <-tick.C: - if len(streamer.peers) > 0 { - break WAIT - } - case <-timeout.C: - t.Fatal("timeout") - } + err = waitForPeers(streamer, 1*time.Second) + if err != nil { + t.Fatal("timeout: peer is not created") } err = streamer.Subscribe(tester.IDs[0], "foo", nil, 0, 0, Top, true) @@ -132,3 +124,18 @@ WAIT: t.Fatalf("Expected no error, got %v", err) } } + +func waitForPeers(streamer *Streamer, timeout time.Duration) error { + ticker := time.NewTicker(10 * time.Millisecond) + timeoutTimer := time.NewTimer(timeout) + for { + select { + case <-ticker.C: + if len(streamer.peers) > 0 { + return nil + } + case <-timeoutTimer.C: + return errors.New("timeout") + } + } +}