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  }