github.com/mackerelio/mackerel-agent-plugins@v0.89.3/mackerel-plugin-gostats/lib/mackerel-plugin-gostats_test.go (about) 1 package mpgostats 2 3 import ( 4 "reflect" 5 "strings" 6 "testing" 7 ) 8 9 func TestParseStats(t *testing.T) { 10 stat := `{ 11 "time": 1449124022112358000, 12 "go_version": "go1.5.1", 13 "go_os": "darwin", 14 "go_arch": "amd64", 15 "cpu_num": 4, 16 "goroutine_num": 6, 17 "gomaxprocs": 4, 18 "cgo_call_num": 5, 19 "memory_alloc": 213360, 20 "memory_total_alloc": 213360, 21 "memory_sys": 3377400, 22 "memory_lookups": 15, 23 "memory_mallocs": 1137, 24 "memory_frees": 0, 25 "memory_stack": 393216, 26 "heap_alloc": 213360, 27 "heap_sys": 655360, 28 "heap_idle": 65536, 29 "heap_inuse": 589824, 30 "heap_released": 0, 31 "heap_objects": 1137, 32 "gc_next": 4194304, 33 "gc_last": 0, 34 "gc_num": 0, 35 "gc_per_second": 0, 36 "gc_pause_per_second": 0, 37 "gc_pause": [] 38 }` 39 40 expected := map[string]float64{ 41 "goroutine_num": 6.0, 42 "cgo_call_num": 5.0, 43 "memory_sys": 3377400.0, 44 "memory_alloc": 213360.0, 45 "memory_stack": 393216.0, 46 "memory_lookups": 15.0, 47 "memory_frees": 0.0, 48 "memory_mallocs": 1137.0, 49 "heap_sys": 655360.0, 50 "heap_idle": 65536.0, 51 "heap_inuse": 589824.0, 52 "heap_released": 0.0, 53 "gc_num": 0.0, 54 "gc_per_second": 0.0, 55 "gc_pause_per_second": 0.0, 56 } 57 58 m := GostatsPlugin{} 59 got, err := m.parseStats(strings.NewReader(stat)) 60 if err != nil { 61 t.Fatalf("error should be nil but got: %v", err) 62 } 63 64 if !reflect.DeepEqual(got, expected) { 65 t.Errorf("stats differs: %v (expected: %v)", got, expected) 66 } 67 }