Permalink
Browse files

client: add support and fix tests

  • Loading branch information...
1 parent 7643da8 commit de1d63c20ef5c31b3d9ce3e9aa1ee7508aea2f6a @suyash suyash committed Aug 9, 2016
Showing with 56 additions and 7 deletions.
  1. +5 −0 client.go
  2. +51 −7 client_test.go
View
@@ -477,6 +477,11 @@ func (c *PCPClient) writeMetrics() {
c.writeInstanceMetric(metric)
wg.Done()
}(metric)
+ case *PCPCounter:
+ go func(metric *PCPCounter) {
+ c.writeSingletonMetric(metric.PCPSingletonMetric)
+ wg.Done()
+ }(metric)
}
}
View
@@ -845,27 +845,71 @@ func TestMMV2InstanceWriting(t *testing.T) {
}
func TestCounter(t *testing.T) {
- c, err := NewPCPClient("test", ProcessFlag)
+ c, err := NewPCPClient("test")
if err != nil {
t.Errorf("cannot create client, error: %v", err)
+ return
}
m, err := NewPCPCounter(0, "c.1")
if err != nil {
t.Errorf("cannot create counter, error: %v", err)
+ return
}
c.MustRegister(m)
c.MustStart()
defer c.MustStop()
- _, _, metrics, values, _, _, _, err := mmvdump.Dump(c.buffer.Bytes())
- if err != nil {
- t.Errorf("cannot get dump: %v", err)
- return
+ matchThings := func(expected int64) {
+ _, _, metrics, values, _, _, strings, err := mmvdump.Dump(c.writer.Bytes())
+ if err != nil {
+ t.Errorf("cannot get dump: %v", err)
+ return
+ }
+
+ matchMetricsAndValues(metrics, values, strings, c, t)
+
+ off, _ := findMetric(m, metrics)
+ _, v := findValue(off, values)
+
+ if val, _ := mmvdump.FixedVal(v.Val, mmvdump.Int64Type); val != int64(expected) {
+ t.Errorf("expected counter to be 10 after Set(10), got %v", val)
+ }
}
- matchMetricsAndValues(metrics, values, c, t)
-}
+ // Up
+
+ m.Up()
+ matchThings(1)
+ // Inc
+
+ m.MustInc(9)
+ matchThings(10)
+
+ // Inc decrement
+
+ err = m.Inc(-9)
+ if err == nil {
+ t.Errorf("expected decrementing a counter to generate an error")
+ }
+ matchThings(10)
+
+ // Set less
+
+ err = m.Set(9)
+ if err == nil {
+ t.Errorf("expected setting a counter to a lesser value to generate an error")
+ }
+ matchThings(10)
+
+ // Set more
+
+ err = m.Set(99)
+ if err != nil {
+ t.Errorf("expected setting a counter to a larger value to not generate an error")
+ }
+ matchThings(99)
+}

0 comments on commit de1d63c

Please sign in to comment.