MCPcopy
hub / github.com/grafana/dskit / TestLifecycler_TokenGenerator

Function TestLifecycler_TokenGenerator

ring/lifecycler_test.go:115–147  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

113}
114
115func TestLifecycler_TokenGenerator(t *testing.T) {
116 t.Parallel()
117
118 ringStore, closer := consul.NewInMemoryClient(GetCodec(), log.NewNopLogger(), nil)
119 t.Cleanup(func() { assert.NoError(t, closer.Close()) })
120
121 var ringConfig Config
122 flagext.DefaultValues(&ringConfig)
123 ringConfig.KVStore.Mock = ringStore
124
125 cfg := testLifecyclerConfig(ringConfig, "instance-1")
126
127 spreadMinimizingTokenGenerator, err := NewSpreadMinimizingTokenGenerator(cfg.ID, cfg.Zone, []string{zone(1), zone(2), zone(3)}, true)
128 require.NoError(t, err)
129
130 tests := []TokenGenerator{nil, initTokenGenerator(t), spreadMinimizingTokenGenerator}
131
132 for _, testData := range tests {
133 cfg.RingTokenGenerator = testData
134 lifecycler, err := NewLifecycler(cfg, &nopFlushTransferer{}, "ingester", ringKey, true, log.NewNopLogger(), nil)
135 require.NoError(t, err)
136 if testData == nil {
137 // If cfg.RingTokenGenerator is empty, RandomTokenGenerator is used
138 tokenGenerator, ok := lifecycler.tokenGenerator.(*RandomTokenGenerator)
139 require.True(t, ok)
140 require.NotNil(t, tokenGenerator)
141 } else {
142 // If cfg.RingTokenGenerator is not empty, it is used
143 require.NotNil(t, lifecycler.tokenGenerator)
144 require.Equal(t, testData, lifecycler.tokenGenerator)
145 }
146 }
147}
148
149func TestLifecycler_HealthyInstancesCount(t *testing.T) {
150 t.Parallel()

Callers

nothing calls this directly

Calls 9

NewInMemoryClientFunction · 0.92
DefaultValuesFunction · 0.92
GetCodecFunction · 0.85
testLifecyclerConfigFunction · 0.85
initTokenGeneratorFunction · 0.85
NewLifecyclerFunction · 0.85
CloseMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected