Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/pkg/bloomgateway/client_pool_test.go

35 lines
872 B

package bloomgateway
import (
"testing"
"time"
"github.com/go-kit/log"
"github.com/stretchr/testify/require"
)
type provider struct {
addresses []string
}
func (p *provider) Addresses() []string {
return p.addresses
}
func TestJumpHashClientPool_UpdateLoop(t *testing.T) {
interval := 100 * time.Millisecond
provider := &provider{[]string{"localhost:9095"}}
pool := NewJumpHashClientPool(nil, provider, interval, log.NewNopLogger())
require.Len(t, pool.Addrs(), 1)
require.Equal(t, "127.0.0.1:9095", pool.Addrs()[0].String())
// update address list
provider.addresses = []string{"localhost:9095", "localhost:9096"}
// wait refresh interval
time.Sleep(2 * interval)
// pool has been updated
require.Len(t, pool.Addrs(), 2)
require.Equal(t, "127.0.0.1:9095", pool.Addrs()[0].String())
require.Equal(t, "127.0.0.1:9096", pool.Addrs()[1].String())
}