MCPcopy
hub / github.com/prometheus/prometheus / testBlockQuerier

Function testBlockQuerier

tsdb/querier_test.go:198–283  ·  view source on GitHub ↗
(t *testing.T, c blockQuerierTestCase, ir IndexReader, cr ChunkReader, stones *tombstones.MemTombstones)

Source from the content-addressed store, hash-verified

196}
197
198func testBlockQuerier(t *testing.T, c blockQuerierTestCase, ir IndexReader, cr ChunkReader, stones *tombstones.MemTombstones) {
199 t.Run("sample", func(t *testing.T) {
200 q := blockQuerier{
201 blockBaseQuerier: &blockBaseQuerier{
202 index: ir,
203 chunks: cr,
204 tombstones: stones,
205
206 mint: c.mint,
207 maxt: c.maxt,
208 },
209 }
210
211 res := q.Select(context.Background(), false, c.hints, c.ms...)
212 defer func() { require.NoError(t, q.Close()) }()
213
214 for {
215 eok, rok := c.exp.Next(), res.Next()
216 require.Equal(t, eok, rok)
217
218 if !eok {
219 require.Empty(t, res.Warnings())
220 break
221 }
222 sexp := c.exp.At()
223 sres := res.At()
224 require.Equal(t, sexp.Labels(), sres.Labels())
225
226 smplExp, errExp := storage.ExpandSamples(sexp.Iterator(nil), nil)
227 smplRes, errRes := storage.ExpandSamples(sres.Iterator(nil), nil)
228
229 require.Equal(t, errExp, errRes)
230 require.Equal(t, smplExp, smplRes)
231 }
232 require.NoError(t, res.Err())
233 })
234
235 t.Run("chunk", func(t *testing.T) {
236 q := blockChunkQuerier{
237 blockBaseQuerier: &blockBaseQuerier{
238 index: ir,
239 chunks: cr,
240 tombstones: stones,
241
242 mint: c.mint,
243 maxt: c.maxt,
244 },
245 }
246 res := q.Select(context.Background(), false, c.hints, c.ms...)
247 defer func() { require.NoError(t, q.Close()) }()
248
249 for {
250 eok, rok := c.expChks.Next(), res.Next()
251 require.Equal(t, eok, rok)
252
253 if !eok {
254 require.Empty(t, res.Warnings())
255 break

Calls 13

SelectMethod · 0.95
ExpandSamplesFunction · 0.92
ExpandChunksFunction · 0.92
rmChunkRefsFunction · 0.85
RunMethod · 0.65
CloseMethod · 0.65
NextMethod · 0.65
WarningsMethod · 0.65
AtMethod · 0.65
LabelsMethod · 0.65
IteratorMethod · 0.65
ErrMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…