1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package v2store
16
17 import (
18 "testing"
19 "time"
20
21 "go.etcd.io/etcd/client/pkg/v3/testutil"
22 )
23
24
25 func TestStoreStatsGetSuccess(t *testing.T) {
26 s := newStore()
27 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
28 s.Get("/foo", false, false)
29 testutil.AssertEqual(t, uint64(1), s.Stats.GetSuccess, "")
30 }
31
32
33 func TestStoreStatsGetFail(t *testing.T) {
34 s := newStore()
35 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
36 s.Get("/no_such_key", false, false)
37 testutil.AssertEqual(t, uint64(1), s.Stats.GetFail, "")
38 }
39
40
41 func TestStoreStatsCreateSuccess(t *testing.T) {
42 s := newStore()
43 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
44 testutil.AssertEqual(t, uint64(1), s.Stats.CreateSuccess, "")
45 }
46
47
48 func TestStoreStatsCreateFail(t *testing.T) {
49 s := newStore()
50 s.Create("/foo", true, "", false, TTLOptionSet{ExpireTime: Permanent})
51 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
52 testutil.AssertEqual(t, uint64(1), s.Stats.CreateFail, "")
53 }
54
55
56 func TestStoreStatsUpdateSuccess(t *testing.T) {
57 s := newStore()
58 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
59 s.Update("/foo", "baz", TTLOptionSet{ExpireTime: Permanent})
60 testutil.AssertEqual(t, uint64(1), s.Stats.UpdateSuccess, "")
61 }
62
63
64 func TestStoreStatsUpdateFail(t *testing.T) {
65 s := newStore()
66 s.Update("/foo", "bar", TTLOptionSet{ExpireTime: Permanent})
67 testutil.AssertEqual(t, uint64(1), s.Stats.UpdateFail, "")
68 }
69
70
71 func TestStoreStatsCompareAndSwapSuccess(t *testing.T) {
72 s := newStore()
73 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
74 s.CompareAndSwap("/foo", "bar", 0, "baz", TTLOptionSet{ExpireTime: Permanent})
75 testutil.AssertEqual(t, uint64(1), s.Stats.CompareAndSwapSuccess, "")
76 }
77
78
79 func TestStoreStatsCompareAndSwapFail(t *testing.T) {
80 s := newStore()
81 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
82 s.CompareAndSwap("/foo", "wrong_value", 0, "baz", TTLOptionSet{ExpireTime: Permanent})
83 testutil.AssertEqual(t, uint64(1), s.Stats.CompareAndSwapFail, "")
84 }
85
86
87 func TestStoreStatsDeleteSuccess(t *testing.T) {
88 s := newStore()
89 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: Permanent})
90 s.Delete("/foo", false, false)
91 testutil.AssertEqual(t, uint64(1), s.Stats.DeleteSuccess, "")
92 }
93
94
95 func TestStoreStatsDeleteFail(t *testing.T) {
96 s := newStore()
97 s.Delete("/foo", false, false)
98 testutil.AssertEqual(t, uint64(1), s.Stats.DeleteFail, "")
99 }
100
101
102 func TestStoreStatsExpireCount(t *testing.T) {
103 s := newStore()
104 fc := newFakeClock()
105 s.clock = fc
106
107 s.Create("/foo", false, "bar", false, TTLOptionSet{ExpireTime: fc.Now().Add(500 * time.Millisecond)})
108 testutil.AssertEqual(t, uint64(0), s.Stats.ExpireCount, "")
109 fc.Advance(600 * time.Millisecond)
110 s.DeleteExpiredKeys(fc.Now())
111 testutil.AssertEqual(t, uint64(1), s.Stats.ExpireCount, "")
112 }
113
View as plain text