github.com/mackerelio/mackerel-agent-plugins@v0.89.3/mackerel-plugin-php-apc/lib/php-apc_test.go (about) 1 package mpphpapc 2 3 import ( 4 "fmt" 5 "net/http" 6 "net/http/httptest" 7 "regexp" 8 "strconv" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestGetPhpApcStatus_1(t *testing.T) { 15 stub := `memory_segments:1 16 segment_size:134217592 17 total_memory:134217592 18 cached_files_count:392 19 cached_files_size:54266016 20 cache_hits:606130 21 cache_misses:392 22 cache_full_count:0 23 user_cache_vars_count:770 24 user_cache_vars_size:45835056 25 user_cache_hits:8334 26 user_cache_misses:10997 27 user_cache_full_count:0` 28 29 stat := make(map[string]float64) 30 31 err := parsePhpApcStatus(stub, &stat) 32 assert.Nil(t, err) 33 assert.EqualValues(t, stat["memory_segments"], 1) 34 assert.EqualValues(t, stat["segment_size"], 134217592) 35 assert.EqualValues(t, stat["total_memory"], 134217592) 36 assert.EqualValues(t, stat["cached_files_count"], 392) 37 assert.EqualValues(t, stat["cached_files_size"], 54266016) 38 assert.EqualValues(t, stat["cache_hits"], 606130) 39 assert.EqualValues(t, stat["cache_misses"], 392) 40 assert.EqualValues(t, stat["cache_full_count"], 0) 41 assert.EqualValues(t, stat["user_cache_vars_count"], 770) 42 assert.EqualValues(t, stat["user_cache_vars_size"], 45835056) 43 assert.EqualValues(t, stat["user_cache_hits"], 8334) 44 assert.EqualValues(t, stat["user_cache_misses"], 10997) 45 assert.EqualValues(t, stat["user_cache_full_count"], 0) 46 } 47 48 func TestGetPhpApcMetrics_1(t *testing.T) { 49 stub := `memory_segments:1 50 segment_size:134217592 51 total_memory:134217592 52 cached_files_count:392 53 cached_files_size:54266016 54 cache_hits:606130 55 cache_misses:392 56 cache_full_count:0 57 user_cache_vars_count:770 58 user_cache_vars_size:45835056 59 user_cache_hits:8334 60 user_cache_misses:10997 61 user_cache_full_count:0` 62 63 ts := httptest.NewServer( 64 http.HandlerFunc( 65 func(w http.ResponseWriter, r *http.Request) { 66 fmt.Fprintln(w, stub) 67 })) 68 defer ts.Close() 69 re, _ := regexp.Compile("([a-z]+)://([A-Za-z0-9.]+):([0-9]+)(.*)") 70 found := re.FindStringSubmatch(ts.URL) 71 assert.EqualValues(t, len(found), 5, fmt.Sprintf("Test stub uri format is changed. %s", ts.URL)) 72 73 host := found[2] 74 port, _ := strconv.Atoi(found[3]) 75 path := found[4] 76 77 ret, err := getPhpApcMetrics(host, uint16(port), path) 78 assert.Nil(t, err) 79 assert.NotNil(t, ret) 80 assert.NotEmpty(t, ret) 81 assert.Contains(t, ret, "memory_segments") 82 assert.Contains(t, ret, "segment_size") 83 assert.Contains(t, ret, "total_memory") 84 assert.Contains(t, ret, "cached_files_count") 85 assert.Contains(t, ret, "cached_files_size") 86 assert.Contains(t, ret, "cache_hits") 87 assert.Contains(t, ret, "cache_misses") 88 assert.Contains(t, ret, "cache_full_count") 89 assert.Contains(t, ret, "user_cache_vars_count") 90 assert.Contains(t, ret, "user_cache_vars_size") 91 assert.Contains(t, ret, "user_cache_hits") 92 assert.Contains(t, ret, "user_cache_misses") 93 assert.Contains(t, ret, "user_cache_full_count") 94 }