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  }