summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/pkg/metrics/counter_test.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/pkg/metrics/counter_test.go105
1 files changed, 105 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/pkg/metrics/counter_test.go b/src/go/collectors/go.d.plugin/pkg/metrics/counter_test.go
new file mode 100644
index 000000000..61f50501a
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/pkg/metrics/counter_test.go
@@ -0,0 +1,105 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package metrics
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func TestCounter_WriteTo(t *testing.T) {
+ c := Counter{}
+ c.Inc()
+ c.Inc()
+ c.Inc()
+ c.Add(0.14)
+ m := map[string]int64{}
+ c.WriteTo(m, "pi", 100, 1)
+ assert.Len(t, m, 1)
+ assert.EqualValues(t, 314, m["pi"])
+}
+
+func TestCounterVec_WriteTo(t *testing.T) {
+ c := NewCounterVec()
+ c.Get("foo").Inc()
+ c.Get("foo").Inc()
+ c.Get("bar").Inc()
+ c.Get("bar").Add(0.14)
+
+ m := map[string]int64{}
+ c.WriteTo(m, "pi", 100, 1)
+ assert.Len(t, m, 2)
+ assert.EqualValues(t, 200, m["pi_foo"])
+ assert.EqualValues(t, 114, m["pi_bar"])
+}
+
+func TestCounter_Inc(t *testing.T) {
+ c := Counter{}
+ c.Inc()
+ assert.Equal(t, 1.0, c.Value())
+ c.Inc()
+ assert.Equal(t, 2.0, c.Value())
+}
+
+func TestCounter_Add(t *testing.T) {
+ c := Counter{}
+ c.Add(3.14)
+ assert.InDelta(t, 3.14, c.Value(), 0.0001)
+ c.Add(2)
+ assert.InDelta(t, 5.14, c.Value(), 0.0001)
+ assert.Panics(t, func() {
+ c.Add(-1)
+ })
+}
+
+func BenchmarkCounter_Add(b *testing.B) {
+ benchmarks := []struct {
+ name string
+ value float64
+ }{
+ {"int", 1},
+ {"float", 3.14},
+ }
+ for _, bm := range benchmarks {
+ b.Run(bm.name, func(b *testing.B) {
+ var c Counter
+ for i := 0; i < b.N; i++ {
+ c.Add(bm.value)
+ }
+ })
+ }
+}
+
+func BenchmarkCounter_Inc(b *testing.B) {
+ var c Counter
+ for i := 0; i < b.N; i++ {
+ c.Inc()
+ }
+}
+
+func BenchmarkCounterVec_Inc(b *testing.B) {
+ c := NewCounterVec()
+ for i := 0; i < b.N; i++ {
+ c.Get("foo").Inc()
+ }
+}
+
+func BenchmarkCounter_Value(b *testing.B) {
+ var c Counter
+ c.Inc()
+ c.Add(3.14)
+ for i := 0; i < b.N; i++ {
+ c.Value()
+ }
+}
+
+func BenchmarkCounter_WriteTo(b *testing.B) {
+ var c Counter
+ c.Inc()
+ c.Add(3.14)
+ m := map[string]int64{}
+ for i := 0; i < b.N; i++ {
+ c.WriteTo(m, "pi", 100, 1)
+ }
+}