72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package meter
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func TestNoopMeter(t *testing.T) {
 | |
| 	m := NewMeter(Path("/noop"))
 | |
| 	if "/noop" != m.Options().Path {
 | |
| 		t.Fatalf("invalid options parsing: %v", m.Options())
 | |
| 	}
 | |
| 
 | |
| 	cnt := m.Counter("counter", "server", "noop")
 | |
| 	cnt.Inc()
 | |
| }
 | |
| 
 | |
| func testEq(a, b []string) bool {
 | |
| 	if len(a) != len(b) {
 | |
| 		return false
 | |
| 	}
 | |
| 	for i := range a {
 | |
| 		if a[i] != b[i] {
 | |
| 			return false
 | |
| 		}
 | |
| 	}
 | |
| 	return true
 | |
| }
 | |
| 
 | |
| func TestBuildLabels(t *testing.T) {
 | |
| 	type testData struct {
 | |
| 		src []string
 | |
| 		dst []string
 | |
| 	}
 | |
| 
 | |
| 	data := []testData{
 | |
| 		{
 | |
| 			src: []string{"zerolabel", "value3", "firstlabel", "value2"},
 | |
| 			dst: []string{"firstlabel", "value2", "zerolabel", "value3"},
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for _, d := range data {
 | |
| 		if !testEq(d.dst, BuildLabels(d.src...)) {
 | |
| 			t.Fatalf("slices not properly sorted: %v %v", d.dst, d.src)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestBuildName(t *testing.T) {
 | |
| 	data := map[string][]string{
 | |
| 		`my_metric{firstlabel="value2",zerolabel="value3"}`: {
 | |
| 			"my_metric",
 | |
| 			"firstlabel", "value2",
 | |
| 			"zerolabel", "value3",
 | |
| 		},
 | |
| 		`my_metric{broker="broker2",register="mdns",server="tcp"}`: {
 | |
| 			"my_metric",
 | |
| 			"broker", "broker1", "broker", "broker2", "register", "mdns", "server", "http", "server", "tcp",
 | |
| 		},
 | |
| 		`my_metric{aaa="aaa"}`: {
 | |
| 			"my_metric",
 | |
| 			"aaa", "aaa",
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for e, d := range data {
 | |
| 		if x := BuildName(d[0], d[1:]...); x != e {
 | |
| 			t.Fatalf("expect: %s, result: %s", e, x)
 | |
| 		}
 | |
| 	}
 | |
| }
 |