forked from open-telemetry/opentelemetry-collector-contrib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ring_buffer_test.go
65 lines (52 loc) · 1.4 KB
/
ring_buffer_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package groupbytraceprocessor
import (
"testing"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/collector/pdata/pcommon"
)
func TestRingBufferCapacity(t *testing.T) {
// prepare
buffer := newRingBuffer(5)
// test
traceIDs := []pcommon.TraceID{
pcommon.TraceID([16]byte{1, 2, 3, 4}),
pcommon.TraceID([16]byte{2, 3, 4, 5}),
pcommon.TraceID([16]byte{3, 4, 5, 6}),
pcommon.TraceID([16]byte{4, 5, 6, 7}),
pcommon.TraceID([16]byte{5, 6, 7, 8}),
pcommon.TraceID([16]byte{6, 7, 8, 9}),
}
for _, traceID := range traceIDs {
buffer.put(traceID)
}
// verify
for i := 5; i > 0; i-- { // last 5 traces
traceID := traceIDs[i]
assert.True(t, buffer.contains(traceID))
}
// the first trace should have been evicted
assert.False(t, buffer.contains(traceIDs[0]))
}
func TestDeleteFromBuffer(t *testing.T) {
// prepare
buffer := newRingBuffer(2)
traceID := pcommon.TraceID([16]byte{1, 2, 3, 4})
buffer.put(traceID)
// test
deleted := buffer.delete(traceID)
// verify
assert.True(t, deleted)
assert.False(t, buffer.contains(traceID))
}
func TestDeleteNonExistingFromBuffer(t *testing.T) {
// prepare
buffer := newRingBuffer(2)
traceID := pcommon.TraceID([16]byte{1, 2, 3, 4})
// test
deleted := buffer.delete(traceID)
// verify
assert.False(t, deleted)
assert.False(t, buffer.contains(traceID))
}