41 lines
768 B
Go
41 lines
768 B
Go
package models
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func newTestMemoryBuffer(t testing.TB, capacity int) Buffer {
|
|
t.Helper()
|
|
buf, err := NewBuffer("test", "", capacity, "memory", "")
|
|
require.NoError(t, err)
|
|
buf.Stats().MetricsAdded.Set(0)
|
|
buf.Stats().MetricsWritten.Set(0)
|
|
buf.Stats().MetricsDropped.Set(0)
|
|
return buf
|
|
}
|
|
|
|
func TestBuffer_AcceptCallsMetricAccept(t *testing.T) {
|
|
var accept int
|
|
mm := &MockMetric{
|
|
Metric: Metric(),
|
|
AcceptF: func() {
|
|
accept++
|
|
},
|
|
}
|
|
b := newTestMemoryBuffer(t, 5)
|
|
b.Add(mm, mm, mm)
|
|
batch := b.Batch(2)
|
|
b.Accept(batch)
|
|
require.Equal(t, 2, accept)
|
|
}
|
|
|
|
func BenchmarkAddMetrics(b *testing.B) {
|
|
buf := newTestMemoryBuffer(b, 10000)
|
|
m := Metric()
|
|
for n := 0; n < b.N; n++ {
|
|
buf.Add(m)
|
|
}
|
|
}
|