MCPcopy Create free account
hub / github.com/cortexproject/cortex / TestFIFORequestQueue

Function TestFIFORequestQueue

pkg/scheduler/queue/user_request_queue_test.go:15–58  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

13)
14
15func TestFIFORequestQueue(t *testing.T) {
16 reg := prometheus.NewPedanticRegistry()
17 queueLength := promauto.With(reg).NewGaugeVec(prometheus.GaugeOpts{
18 Name: "cortex_query_scheduler_queue_length",
19 Help: "Number of queries in the queue.",
20 }, []string{"user", "priority", "type"})
21
22 queue := NewFIFORequestQueue(make(chan Request, 2), "userID", queueLength)
23 request1 := MockRequest{
24 id: "request 1",
25 priority: 1,
26 }
27 request2 := MockRequest{
28 id: "request 2",
29 priority: 2,
30 }
31
32 queue.enqueueRequest(request1)
33 queue.enqueueRequest(request2)
34
35 assert.NoError(t, promtest.GatherAndCompare(reg, strings.NewReader(`
36 # HELP cortex_query_scheduler_queue_length Number of queries in the queue.
37 # TYPE cortex_query_scheduler_queue_length gauge
38 cortex_query_scheduler_queue_length{priority="1",type="fifo",user="userID"} 1
39 cortex_query_scheduler_queue_length{priority="2",type="fifo",user="userID"} 1
40 `), "cortex_query_scheduler_queue_length"))
41 assert.Equal(t, 2, queue.length())
42 assert.Equal(t, request1, queue.dequeueRequest(0, false))
43 assert.Equal(t, 1, queue.length())
44 assert.NoError(t, promtest.GatherAndCompare(reg, strings.NewReader(`
45 # HELP cortex_query_scheduler_queue_length Number of queries in the queue.
46 # TYPE cortex_query_scheduler_queue_length gauge
47 cortex_query_scheduler_queue_length{priority="1",type="fifo",user="userID"} 0
48 cortex_query_scheduler_queue_length{priority="2",type="fifo",user="userID"} 1
49 `), "cortex_query_scheduler_queue_length"))
50 assert.Equal(t, request2, queue.dequeueRequest(0, false))
51 assert.Equal(t, 0, queue.length())
52 assert.NoError(t, promtest.GatherAndCompare(reg, strings.NewReader(`
53 # HELP cortex_query_scheduler_queue_length Number of queries in the queue.
54 # TYPE cortex_query_scheduler_queue_length gauge
55 cortex_query_scheduler_queue_length{priority="1",type="fifo",user="userID"} 0
56 cortex_query_scheduler_queue_length{priority="2",type="fifo",user="userID"} 0
57 `), "cortex_query_scheduler_queue_length"))
58}
59
60func TestPriorityRequestQueue(t *testing.T) {
61 reg := prometheus.NewPedanticRegistry()

Callers

nothing calls this directly

Calls 5

enqueueRequestMethod · 0.95
lengthMethod · 0.95
dequeueRequestMethod · 0.95
NewFIFORequestQueueFunction · 0.85
EqualMethod · 0.65

Tested by

no test coverage detected