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

Function TestGetBatchBuffer

modules/frontend/queue/queue_test.go:340–402  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

338}
339
340func TestGetBatchBuffer(t *testing.T) {
341 tests := []struct {
342 name string
343 queueContents []Request
344 requestedCount int
345 expectedCount int
346 }{
347 {
348 name: "exactly requested count",
349 queueContents: []Request{&mockRequest{}, &mockRequest{}, &mockRequest{}},
350 requestedCount: 3,
351 expectedCount: 3,
352 },
353 {
354 name: "less than requested count",
355 queueContents: []Request{&mockRequest{}, &mockRequest{}},
356 requestedCount: 3,
357 expectedCount: 2,
358 },
359 {
360 name: "more than requested count",
361 queueContents: []Request{&mockRequest{}, &mockRequest{}, &mockRequest{}, &mockRequest{}},
362 requestedCount: 3,
363 expectedCount: 3,
364 },
365 {
366 name: "less than requested count due to biggest weight",
367 queueContents: []Request{&mockRequest{10}},
368 requestedCount: 3,
369 expectedCount: 1,
370 },
371 {
372 name: "empty queue",
373 queueContents: []Request{},
374 requestedCount: 3,
375 expectedCount: 0,
376 },
377 }
378
379 for _, tt := range tests {
380 t.Run(tt.name, func(t *testing.T) {
381 queue := make(chan Request, len(tt.queueContents))
382 for _, req := range tt.queueContents {
383 queue <- req
384 }
385
386 q := &RequestQueue{
387 queueLength: prometheus.NewGaugeVec(prometheus.GaugeOpts{
388 Name: "test_len",
389 }, []string{"user"}),
390
391 batchWeight: prometheus.NewHistogramVec(prometheus.HistogramOpts{
392 Name: "test_weight",
393 }, []string{"user"}),
394 }
395
396 batchBuffer := make([]Request, tt.requestedCount)
397 result := q.getBatchBuffer(batchBuffer, "user", queue)

Callers

nothing calls this directly

Calls 3

getBatchBufferMethod · 0.95
RunMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected