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

Function TestQueues

pkg/scheduler/queue/user_queues_test.go:18–71  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

16)
17
18func TestQueues(t *testing.T) {
19 uq := newUserQueues(0, MockLimits{}, nil)
20 assert.NotNil(t, uq)
21 assert.NoError(t, isConsistent(uq))
22
23 q, u, lastUserIndex := uq.getNextQueueForQuerier(-1, "querier-1")
24 assert.Nil(t, q)
25 assert.Equal(t, "", u)
26
27 // Add queues: [one]
28 qOne := getOrAdd(t, uq, "one", 0)
29 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qOne, qOne)
30
31 // [one two]
32 qTwo := getOrAdd(t, uq, "two", 0)
33 assert.NotEqual(t, qOne, qTwo)
34
35 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qTwo, qOne, qTwo, qOne)
36 confirmOrderForQuerier(t, uq, "querier-2", -1, qOne, qTwo, qOne)
37
38 // [one two three]
39 // confirm fifo by adding a third queue and iterating to it
40 qThree := getOrAdd(t, uq, "three", 0)
41
42 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qTwo, qThree, qOne)
43
44 // Remove one: ["" two three]
45 uq.deleteQueue("one")
46 assert.NoError(t, isConsistent(uq))
47
48 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qTwo, qThree, qTwo)
49
50 // "four" is added at the beginning of the list: [four two three]
51 qFour := getOrAdd(t, uq, "four", 0)
52
53 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qThree, qFour, qTwo, qThree)
54
55 // Remove two: [four "" three]
56 uq.deleteQueue("two")
57 assert.NoError(t, isConsistent(uq))
58
59 lastUserIndex = confirmOrderForQuerier(t, uq, "querier-1", lastUserIndex, qFour, qThree, qFour)
60
61 // Remove three: [four]
62 uq.deleteQueue("three")
63 assert.NoError(t, isConsistent(uq))
64
65 // Remove four: []
66 uq.deleteQueue("four")
67 assert.NoError(t, isConsistent(uq))
68
69 q, _, _ = uq.getNextQueueForQuerier(lastUserIndex, "querier-1")
70 assert.Nil(t, q)
71}
72
73func TestQueuesWithQueriers(t *testing.T) {
74 uq := newUserQueues(0, MockLimits{}, nil)

Callers

nothing calls this directly

Calls 7

newUserQueuesFunction · 0.85
isConsistentFunction · 0.85
getOrAddFunction · 0.85
confirmOrderForQuerierFunction · 0.85
deleteQueueMethod · 0.80
EqualMethod · 0.65

Tested by

no test coverage detected