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

Function TestTimerService

services/services_test.go:46–71  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

44}
45
46func TestTimerService(t *testing.T) {
47 t.Parallel()
48
49 var iterations atomic.Uint64
50
51 s := NewTimerService(100*time.Millisecond, nil, func(context.Context) error {
52 iterations.Inc()
53 return nil
54 }, nil)
55 defer s.StopAsync()
56
57 require.Equal(t, New, s.State())
58 require.NoError(t, s.StartAsync(context.Background()))
59 require.Error(t, s.StartAsync(context.Background()))
60 require.NoError(t, s.AwaitRunning(context.Background()))
61 require.Equal(t, Running, s.State())
62
63 time.Sleep(1 * time.Second)
64
65 val := iterations.Load()
66 require.NotZero(t, val) // we should observe some iterations now
67
68 s.StopAsync()
69 require.NoError(t, s.AwaitTerminated(context.Background()))
70 require.Equal(t, Terminated, s.State())
71}
72
73func TestHelperFunctionsNoError(t *testing.T) {
74 t.Parallel()

Callers

nothing calls this directly

Calls 9

NewTimerServiceFunction · 0.85
StopAsyncMethod · 0.65
StateMethod · 0.65
StartAsyncMethod · 0.65
AwaitRunningMethod · 0.65
SleepMethod · 0.65
AwaitTerminatedMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected