+ c_1_1 := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEML0")
+
+ c_1_2 := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEML0")
+
+ c_1_1.Inc()
+ c_1_2.Inc()
+ if c_1_1 != c_1_2 {
+ t.Errorf("c_1_1 not same than c_1_2. cache not working?")
+ }
+
+ //
+ //
+ c_2_1 := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event2"},
+ "SUBSYSTEML0")
+
+ c_2_2 := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event2"},
+ "SUBSYSTEML0")
+
+ c_2_1.Inc()
+ c_2_2.Inc()
+ if c_2_1 != c_2_2 {
+ t.Errorf("c_2_1 not same than c_2_2. cache not working?")
+ }
+
+ if c_1_1 == c_2_1 {
+ t.Errorf("c_1_1 same than c_2_1. what?")
+ }
+ if c_1_2 == c_2_2 {
+ t.Errorf("c_1_2 same than c_2_2. what?")
+ }
+
+}
+
+func TestMetricLabeledCounterMissmatch(t *testing.T) {
+ Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRMISSMATCH")
+
+ ret := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "eventmiss"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRMISSMATCH")
+
+ if ret != nil {
+ t.Errorf("Returned counter even its labels are mismatching")
+ }
+
+ ret = Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name"},
+ []string{"name1"},
+ "SUBSYSTEMLERRMISSMATCH")
+
+ if ret != nil {
+ t.Errorf("Returned counter even its labels are mismatching")
+ }
+
+}
+
+func TestMetricLabeledCounterWrongOrder(t *testing.T) {
+ Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRWRONGORDER")
+
+ ret := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"event", "name"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRWRONGORDER")
+
+ if ret != nil {
+ t.Errorf("Returned counter even its labels order is wrong")
+ }
+}
+
+func TestMetricLabeledCounterCounterNameExists(t *testing.T) {
+ Metric.RegisterCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ "SUBSYSTEMLERRNAMEEXISTS")
+
+ ret := Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter1", Help: "counter1"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRNAMEEXISTS")
+
+ if ret != nil {
+ t.Errorf("Returned labeled counter even its name conflicts with existing counter name")
+ }
+}
+
+func TestMetricCounterLabeledCounterNameExists(t *testing.T) {
+ Metric.RegisterLabeledCounter(
+ CounterOpts{Name: "counter2", Help: "counter2"},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEMLERRNAMEEXISTS")
+
+ ret := Metric.RegisterCounter(
+ CounterOpts{Name: "counter2", Help: "counter2"},
+ "SUBSYSTEMLERRNAMEEXISTS")
+
+ if ret != nil {
+ t.Errorf("Returned counter even its name conflicts with existing labeled counter name")
+ }
+}
+
+func TestMetricLabeledCounterGroup(t *testing.T) {
+ //
+ //
+ c_grp1 := Metric.RegisterLabeledCounterGroup(
+ []CounterOpts{{Name: "counter1", Help: "counter1"}},
+ []string{"name", "event"},
+ []string{"name1", "event1"},
+ "SUBSYSTEML1")
+