summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/armon/go-metrics/metrics_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/armon/go-metrics/metrics_test.go')
-rw-r--r--vendor/github.com/armon/go-metrics/metrics_test.go262
1 files changed, 262 insertions, 0 deletions
diff --git a/vendor/github.com/armon/go-metrics/metrics_test.go b/vendor/github.com/armon/go-metrics/metrics_test.go
new file mode 100644
index 000000000..f5b2a4c79
--- /dev/null
+++ b/vendor/github.com/armon/go-metrics/metrics_test.go
@@ -0,0 +1,262 @@
+package metrics
+
+import (
+ "reflect"
+ "runtime"
+ "testing"
+ "time"
+)
+
+func mockMetric() (*MockSink, *Metrics) {
+ m := &MockSink{}
+ met := &Metrics{sink: m}
+ return m, met
+}
+
+func TestMetrics_SetGauge(t *testing.T) {
+ m, met := mockMetric()
+ met.SetGauge([]string{"key"}, float32(1))
+ if m.keys[0][0] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.HostName = "test"
+ met.EnableHostname = true
+ met.SetGauge([]string{"key"}, float32(1))
+ if m.keys[0][0] != "test" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.EnableTypePrefix = true
+ met.SetGauge([]string{"key"}, float32(1))
+ if m.keys[0][0] != "gauge" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.ServiceName = "service"
+ met.SetGauge([]string{"key"}, float32(1))
+ if m.keys[0][0] != "service" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+}
+
+func TestMetrics_EmitKey(t *testing.T) {
+ m, met := mockMetric()
+ met.EmitKey([]string{"key"}, float32(1))
+ if m.keys[0][0] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.EnableTypePrefix = true
+ met.EmitKey([]string{"key"}, float32(1))
+ if m.keys[0][0] != "kv" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.ServiceName = "service"
+ met.EmitKey([]string{"key"}, float32(1))
+ if m.keys[0][0] != "service" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+}
+
+func TestMetrics_IncrCounter(t *testing.T) {
+ m, met := mockMetric()
+ met.IncrCounter([]string{"key"}, float32(1))
+ if m.keys[0][0] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.EnableTypePrefix = true
+ met.IncrCounter([]string{"key"}, float32(1))
+ if m.keys[0][0] != "counter" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.ServiceName = "service"
+ met.IncrCounter([]string{"key"}, float32(1))
+ if m.keys[0][0] != "service" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+}
+
+func TestMetrics_AddSample(t *testing.T) {
+ m, met := mockMetric()
+ met.AddSample([]string{"key"}, float32(1))
+ if m.keys[0][0] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.EnableTypePrefix = true
+ met.AddSample([]string{"key"}, float32(1))
+ if m.keys[0][0] != "sample" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.ServiceName = "service"
+ met.AddSample([]string{"key"}, float32(1))
+ if m.keys[0][0] != "service" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] != 1 {
+ t.Fatalf("")
+ }
+}
+
+func TestMetrics_MeasureSince(t *testing.T) {
+ m, met := mockMetric()
+ met.TimerGranularity = time.Millisecond
+ n := time.Now()
+ met.MeasureSince([]string{"key"}, n)
+ if m.keys[0][0] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] > 0.1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.TimerGranularity = time.Millisecond
+ met.EnableTypePrefix = true
+ met.MeasureSince([]string{"key"}, n)
+ if m.keys[0][0] != "timer" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] > 0.1 {
+ t.Fatalf("")
+ }
+
+ m, met = mockMetric()
+ met.TimerGranularity = time.Millisecond
+ met.ServiceName = "service"
+ met.MeasureSince([]string{"key"}, n)
+ if m.keys[0][0] != "service" || m.keys[0][1] != "key" {
+ t.Fatalf("")
+ }
+ if m.vals[0] > 0.1 {
+ t.Fatalf("")
+ }
+}
+
+func TestMetrics_EmitRuntimeStats(t *testing.T) {
+ runtime.GC()
+ m, met := mockMetric()
+ met.emitRuntimeStats()
+
+ if m.keys[0][0] != "runtime" || m.keys[0][1] != "num_goroutines" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[0] <= 1 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[1][0] != "runtime" || m.keys[1][1] != "alloc_bytes" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[1] <= 40000 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[2][0] != "runtime" || m.keys[2][1] != "sys_bytes" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[2] <= 100000 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[3][0] != "runtime" || m.keys[3][1] != "malloc_count" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[3] <= 100 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[4][0] != "runtime" || m.keys[4][1] != "free_count" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[4] <= 100 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[5][0] != "runtime" || m.keys[5][1] != "heap_objects" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[5] <= 100 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[6][0] != "runtime" || m.keys[6][1] != "total_gc_pause_ns" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[6] <= 100000 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[7][0] != "runtime" || m.keys[7][1] != "total_gc_runs" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[7] < 1 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+
+ if m.keys[8][0] != "runtime" || m.keys[8][1] != "gc_pause_ns" {
+ t.Fatalf("bad key %v", m.keys)
+ }
+ if m.vals[8] <= 1000 {
+ t.Fatalf("bad val: %v", m.vals)
+ }
+}
+
+func TestInsert(t *testing.T) {
+ k := []string{"hi", "bob"}
+ exp := []string{"hi", "there", "bob"}
+ out := insert(1, "there", k)
+ if !reflect.DeepEqual(exp, out) {
+ t.Fatalf("bad insert %v %v", exp, out)
+ }
+}