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

Function TestBasicLifecycler_UnregisterOnStop

ring/basic_lifecycler_test.go:237–269  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

235}
236
237func TestBasicLifecycler_UnregisterOnStop(t *testing.T) {
238 ctx := context.Background()
239 cfg := prepareBasicLifecyclerConfig()
240 lifecycler, delegate, store, err := prepareBasicLifecycler(t, cfg)
241 require.NoError(t, err)
242
243 delegate.onRegister = func(_ *BasicLifecycler, _ Desc, _ bool, _ string, _ InstanceDesc) (InstanceState, Tokens) {
244 return ACTIVE, Tokens{1, 2, 3, 4, 5}
245 }
246 delegate.onStopping = func(_ *BasicLifecycler) {
247 assert.Equal(t, services.Stopping, lifecycler.State())
248 }
249
250 require.NoError(t, services.StartAndAwaitRunning(ctx, lifecycler))
251 assert.Equal(t, ACTIVE, lifecycler.GetState())
252 assert.Equal(t, Tokens{1, 2, 3, 4, 5}, lifecycler.GetTokens())
253 assert.True(t, lifecycler.IsRegistered())
254 assert.NotZero(t, lifecycler.GetRegisteredAt())
255 assert.Equal(t, float64(cfg.NumTokens), testutil.ToFloat64(lifecycler.metrics.tokensOwned))
256 assert.Equal(t, float64(cfg.NumTokens), testutil.ToFloat64(lifecycler.metrics.tokensToOwn))
257
258 require.NoError(t, services.StopAndAwaitTerminated(ctx, lifecycler))
259 assert.Equal(t, PENDING, lifecycler.GetState())
260 assert.Equal(t, Tokens{}, lifecycler.GetTokens())
261 assert.False(t, lifecycler.IsRegistered())
262 assert.Zero(t, lifecycler.GetRegisteredAt())
263 assert.Equal(t, float64(0), testutil.ToFloat64(lifecycler.metrics.tokensOwned))
264 assert.Equal(t, float64(0), testutil.ToFloat64(lifecycler.metrics.tokensToOwn))
265
266 // Assert on the instance removed from the ring.
267 _, ok := getInstanceFromStore(t, store, testInstanceID)
268 assert.False(t, ok)
269}
270
271func TestBasicLifecycler_KeepInTheRingOnStop(t *testing.T) {
272 ctx := context.Background()

Callers

nothing calls this directly

Calls 11

StartAndAwaitRunningFunction · 0.92
StopAndAwaitTerminatedFunction · 0.92
prepareBasicLifecyclerFunction · 0.85
getInstanceFromStoreFunction · 0.85
IsRegisteredMethod · 0.80
StateMethod · 0.65
EqualMethod · 0.45
GetStateMethod · 0.45
GetTokensMethod · 0.45
GetRegisteredAtMethod · 0.45

Tested by

no test coverage detected