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

Function Test_instance_updateProcessors

modules/generator/instance_test.go:141–447  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

139}
140
141func Test_instance_updateProcessors(t *testing.T) {
142 cfg := Config{}
143 cfg.RegisterFlagsAndApplyDefaults("", &flag.FlagSet{})
144 logger := log.NewLogfmtLogger(log.NewSyncWriter(os.Stdout))
145 overrides := mockOverrides{}
146
147 instance, err := newInstance(&cfg, "test", &overrides, &noopStorage{}, logger)
148 assert.NoError(t, err)
149
150 // stop the update goroutine
151 close(instance.shutdownCh)
152
153 // no processors should be present initially
154 assert.Len(t, instance.processors, 0)
155
156 t.Run("add servicegraphs processors", func(t *testing.T) {
157 overrides.processors = map[string]struct{}{
158 processor.ServiceGraphsName: {},
159 }
160 err := instance.updateProcessors()
161 assert.NoError(t, err)
162
163 assert.Len(t, instance.processors, 1)
164 assert.Equal(t, instance.processors[processor.ServiceGraphsName].Name(), processor.ServiceGraphsName)
165 })
166
167 t.Run("ignore unknown processor", func(t *testing.T) {
168 overrides.processors = map[string]struct{}{
169 "span-metricsss": {}, // typo in the overrides
170 }
171 err := instance.updateProcessors()
172 assert.NoError(t, err)
173
174 // unknown processors are ignored and therefore the desired processor set is empty.
175 assert.Len(t, instance.processors, 0)
176 })
177
178 t.Run("ignore removed local-blocks processor and keep valid processors", func(t *testing.T) {
179 overrides.processors = map[string]struct{}{
180 "local-blocks": {},
181 processor.ServiceGraphsName: {},
182 }
183 err := instance.updateProcessors()
184 assert.NoError(t, err)
185
186 assert.Len(t, instance.processors, 1)
187 assert.Equal(t, processor.ServiceGraphsName, instance.processors[processor.ServiceGraphsName].Name())
188 })
189
190 t.Run("add spanmetrics processor", func(t *testing.T) {
191 overrides.processors = map[string]struct{}{
192 processor.ServiceGraphsName: {},
193 processor.SpanMetricsName: {},
194 }
195 err := instance.updateProcessors()
196 assert.NoError(t, err)
197
198 assert.Len(t, instance.processors, 2)

Callers

nothing calls this directly

Calls 12

updateProcessorsMethod · 0.80
copyWithOverridesMethod · 0.80
diffProcessorsMethod · 0.80
newInstanceFunction · 0.70
LenMethod · 0.65
NameMethod · 0.65
RunMethod · 0.45
EqualMethod · 0.45
StringMethod · 0.45
StringsMethod · 0.45

Tested by

no test coverage detected