| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- package command_test
- import (
- "testing"
- context "golang.org/x/net/context"
- "v2ray.com/core/app/stats"
- . "v2ray.com/core/app/stats/command"
- . "v2ray.com/ext/assert"
- )
- func TestGetStats(t *testing.T) {
- assert := With(t)
- m, err := stats.NewManager(context.Background(), &stats.Config{})
- assert(err, IsNil)
- sc, err := m.RegisterCounter("test_counter")
- assert(err, IsNil)
- sc.Set(1)
- s := NewStatsServer(m)
- testCases := []struct {
- name string
- reset bool
- value int64
- err bool
- }{
- {
- name: "counterNotExist",
- err: true,
- },
- {
- name: "test_counter",
- reset: true,
- value: 1,
- },
- {
- name: "test_counter",
- value: 0,
- },
- }
- for _, tc := range testCases {
- resp, err := s.GetStats(context.Background(), &GetStatsRequest{
- Name: tc.name,
- Reset_: tc.reset,
- })
- if tc.err {
- assert(err, IsNotNil)
- } else {
- assert(err, IsNil)
- assert(resp.Stat.Name, Equals, tc.name)
- assert(resp.Stat.Value, Equals, tc.value)
- }
- }
- }
- func TestQueryStats(t *testing.T) {
- assert := With(t)
- m, err := stats.NewManager(context.Background(), &stats.Config{})
- assert(err, IsNil)
- sc1, err := m.RegisterCounter("test_counter")
- assert(err, IsNil)
- sc1.Set(1)
- sc2, err := m.RegisterCounter("test_counter_2")
- assert(err, IsNil)
- sc2.Set(2)
- sc3, err := m.RegisterCounter("test_counter_3")
- assert(err, IsNil)
- sc3.Set(3)
- s := NewStatsServer(m)
- resp, err := s.QueryStats(context.Background(), &QueryStatsRequest{
- Pattern: "counter_",
- })
- assert(err, IsNil)
- assert(len(resp.Stat), Equals, 2)
- v2 := false
- v3 := false
- for _, sc := range resp.Stat {
- switch sc.Name {
- case "test_counter_2":
- assert(sc.Value, Equals, int64(2))
- v2 = true
- case "test_counter_3":
- assert(sc.Value, Equals, int64(3))
- v3 = true
- default:
- t.Error("unexpected stat name: ", sc.Name)
- t.Fail()
- }
- }
- assert(v2, IsTrue)
- assert(v3, IsTrue)
- }
|