MCPcopy
hub / github.com/cilium/cilium / TestRingBuffer_AddingAndIterating

Function TestRingBuffer_AddingAndIterating

pkg/container/ring_buffer_test.go:31–94  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

29}
30
31func TestRingBuffer_AddingAndIterating(t *testing.T) {
32 assert := assert.New(t)
33 bufferSize := 5
34 buffer := NewRingBuffer(bufferSize)
35 dumpAll := dumpFunc(buffer)
36 for i := 1; i <= 10; i++ {
37 buffer.Add(i)
38 }
39 assert.Len(buffer.buffer, bufferSize)
40 acc := dumpAll()
41 assert.IsIncreasing(acc)
42 assert.Equal([]int{6, 7, 8, 9, 10}, acc)
43
44 buffer.Add(11)
45 acc = dumpAll()
46 assert.Equal([]int{7, 8, 9, 10, 11}, acc)
47
48 d := []int{}
49 buffer.Iterate(func(i any) {
50 d = append(d, i.(int))
51 })
52 assert.IsNonDecreasing(d)
53 assert.Equal([]int{7, 8, 9, 10, 11}, d)
54 acc = []int{}
55 buffer.IterateValid(func(n any) bool {
56 return n.(int) >= 9
57 }, func(n any) {
58 acc = append(acc, n.(int))
59 })
60 assert.Equal([]int{9, 10, 11}, acc)
61
62 acc = []int{}
63 buffer.IterateValid(func(n any) bool {
64 return n.(int) >= 0
65 }, func(n any) {
66 acc = append(acc, n.(int))
67 })
68 assert.Equal([]int{7, 8, 9, 10, 11}, acc)
69
70 acc = []int{}
71 buffer.IterateValid(func(n any) bool {
72 return n.(int) >= 11
73 }, func(n any) {
74 acc = append(acc, n.(int))
75 })
76 assert.Equal([]int{11}, acc)
77
78 acc = []int{}
79 buffer.IterateValid(func(n any) bool {
80 return n.(int) > 11
81 }, func(n any) {
82 acc = append(acc, n.(int))
83 })
84 assert.Empty(acc)
85
86 // Test empty buffer.
87 buffer = NewRingBuffer(0)
88 acc = dumpBuffer(buffer)

Callers

nothing calls this directly

Calls 10

AddMethod · 0.95
IterateMethod · 0.95
IterateValidMethod · 0.95
NewRingBufferFunction · 0.85
dumpFuncFunction · 0.85
dumpBufferFunction · 0.85
NewMethod · 0.65
LenMethod · 0.65
EqualMethod · 0.65
EmptyMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…