mirror of
https://github.com/netbirdio/netbird.git
synced 2025-07-27 02:54:17 +02:00
* Exit from processConnResults after all tries If all server is unavailable then the server picker never return because we never close the result channel. Count the number of the results and exit when we reached the expected size
32 lines
547 B
Go
32 lines
547 B
Go
package client
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestServerPicker_UnavailableServers(t *testing.T) {
|
|
sp := ServerPicker{
|
|
TokenStore: nil,
|
|
PeerID: "test",
|
|
}
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
|
|
defer cancel()
|
|
|
|
go func() {
|
|
_, err := sp.PickServer(ctx, []string{"rel://dummy1", "rel://dummy2"})
|
|
if err == nil {
|
|
t.Error(err)
|
|
}
|
|
cancel()
|
|
}()
|
|
|
|
<-ctx.Done()
|
|
if errors.Is(ctx.Err(), context.DeadlineExceeded) {
|
|
t.Errorf("PickServer() took too long to complete")
|
|
}
|
|
}
|