MCPcopy
hub / github.com/grafana/tempo / TestRetentionProvider

Function TestRetentionProvider

modules/backendscheduler/provider/retention_test.go:23–62  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

21func (s *staticTenantLister) Tenants() []string { return s.tenants }
22
23func TestRetentionProvider(t *testing.T) {
24 ctx, cancel := context.WithTimeout(context.Background(), time.Second)
25 defer cancel()
26
27 cfg := RetentionConfig{}
28 cfg.RegisterFlagsAndApplyDefaults("", &flag.FlagSet{})
29 cfg.Interval = 10 * time.Millisecond
30
31 workCfg := work.Config{}
32 workCfg.RegisterFlagsAndApplyDefaults("", &flag.FlagSet{})
33 w := work.New(workCfg)
34
35 tenants := &staticTenantLister{tenants: []string{"tenant-a", "tenant-b"}}
36
37 logger := log.NewLogfmtLogger(os.Stderr)
38
39 limits, err := overrides.NewOverrides(overrides.Config{Defaults: overrides.Overrides{}}, nil, prometheus.NewRegistry())
40 require.NoError(t, err)
41 p := NewRetentionProvider(cfg, logger, tenants, limits, w)
42
43 jobChan := p.Start(ctx)
44
45 seen := make(map[string]bool)
46 for job := range jobChan {
47 require.NotNil(t, job)
48 require.Equal(t, tempopb.JobType_JOB_TYPE_RETENTION, job.Type)
49 require.NotEmpty(t, job.Tenant(), "retention jobs must have a tenant set")
50 seen[job.Tenant()] = true
51
52 err := w.AddJob(job)
53 require.NoError(t, err)
54 job.Start() // mark running so the provider skips this tenant next tick
55 }
56
57 // Every tenant should have received exactly one retention job before the
58 // context deadline.
59 for _, tenantID := range tenants.tenants {
60 require.True(t, seen[tenantID], "expected retention job for tenant %s", tenantID)
61 }
62}
63
64func TestRetentionProviderSkipsRedactionPending(t *testing.T) {
65 ctx, cancel := context.WithTimeout(context.Background(), time.Second)

Callers

nothing calls this directly

Calls 10

StartMethod · 0.95
NewFunction · 0.92
NewOverridesFunction · 0.92
NewRetentionProviderFunction · 0.85
TenantMethod · 0.80
AddJobMethod · 0.65
StartMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected