@@ -7,49 +7,50 @@ import (
7
7
)
8
8
9
9
func TestAllItemsExpired (t * testing.T ) {
10
- maxTTL := 4 // time in seconds
11
- startSize := 3 // initial number of items in map
12
- pruneInterval := 1 // search for expired items every 'pruneInterval' seconds
13
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
10
+ maxTTL := time . Duration ( time . Second * 4 ) // time in seconds
11
+ startSize := 3 // initial number of items in map
12
+ pruneInterval := time . Duration ( time . Second * 1 ) // search for expired items every 'pruneInterval' seconds
13
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
14
14
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
15
+ defer tm .Close ()
15
16
16
17
// populate the TtlMap
17
18
tm .Put ("myString" , "a b c" )
18
19
tm .Put ("int_array" , []int {1 , 2 , 3 })
19
20
20
- sleepTime := maxTTL + pruneInterval
21
- time .Sleep (time .Second * time .Duration (sleepTime ))
21
+ time .Sleep (maxTTL + pruneInterval )
22
22
t .Logf ("tm.len: %v\n " , tm .Len ())
23
23
if tm .Len () > 0 {
24
24
t .Errorf ("t.Len should be 0, but actually equals %v\n " , tm .Len ())
25
25
}
26
26
}
27
27
28
28
func TestNoItemsExpired (t * testing.T ) {
29
- maxTTL := 2 // time in seconds
30
- startSize := 3 // initial number of items in map
31
- pruneInterval := 3 // search for expired items every 'pruneInterval' seconds
32
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
29
+ maxTTL := time . Duration ( time . Second * 2 ) // time in seconds
30
+ startSize := 3 // initial number of items in map
31
+ pruneInterval := time . Duration ( time . Second * 3 ) // search for expired items every 'pruneInterval' seconds
32
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
33
33
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
34
+ defer tm .Close ()
34
35
35
36
// populate the TtlMap
36
37
tm .Put ("myString" , "a b c" )
37
38
tm .Put ("int_array" , []int {1 , 2 , 3 })
38
39
39
- sleepTime := maxTTL
40
- time .Sleep (time .Second * time .Duration (sleepTime ))
40
+ time .Sleep (maxTTL )
41
41
t .Logf ("tm.len: %v\n " , tm .Len ())
42
42
if tm .Len () != 2 {
43
43
t .Fatalf ("t.Len should equal 2, but actually equals %v\n " , tm .Len ())
44
44
}
45
45
}
46
46
47
47
func TestKeepFloat (t * testing.T ) {
48
- maxTTL := 2 // time in seconds
49
- startSize := 3 // initial number of items in map
50
- pruneInterval := 1 // search for expired items every 'pruneInterval' seconds
51
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
48
+ maxTTL := time . Duration ( time . Second * 2 ) // time in seconds
49
+ startSize := 3 // initial number of items in map
50
+ pruneInterval := time . Duration ( time . Second * 1 ) // search for expired items every 'pruneInterval' seconds
51
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
52
52
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
53
+ defer tm .Close ()
53
54
54
55
// populate the TtlMap
55
56
tm .Put ("myString" , "a b c" )
@@ -63,8 +64,7 @@ func TestKeepFloat(t *testing.T) {
63
64
}
64
65
}()
65
66
66
- sleepTime := maxTTL + pruneInterval
67
- time .Sleep (time .Second * time .Duration (sleepTime ))
67
+ time .Sleep (maxTTL + pruneInterval )
68
68
if tm .Len () != 1 {
69
69
t .Fatalf ("t.Len should equal 1, but actually equals %v\n " , tm .Len ())
70
70
}
@@ -77,11 +77,12 @@ func TestKeepFloat(t *testing.T) {
77
77
}
78
78
79
79
func TestWithNoRefresh (t * testing.T ) {
80
- maxTTL := 4 // time in seconds
81
- startSize := 3 // initial number of items in map
82
- pruneInterval := 1 // search for expired items every 'pruneInterval' seconds
83
- refreshLastAccessOnGet := false // do NOT update item's lastAccessTime on a .Get()
80
+ maxTTL := time . Duration ( time . Second * 4 ) // time in seconds
81
+ startSize := 3 // initial number of items in map
82
+ pruneInterval := time . Duration ( time . Second * 1 ) // search for expired items every 'pruneInterval' seconds
83
+ refreshLastAccessOnGet := false // do NOT update item's lastAccessTime on a .Get()
84
84
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
85
+ defer tm .Close ()
85
86
86
87
// populate the TtlMap
87
88
tm .Put ("myString" , "a b c" )
@@ -94,20 +95,20 @@ func TestWithNoRefresh(t *testing.T) {
94
95
}
95
96
}()
96
97
97
- sleepTime := maxTTL + pruneInterval
98
- time .Sleep (time .Second * time .Duration (sleepTime ))
98
+ time .Sleep (maxTTL + pruneInterval )
99
99
t .Logf ("tm.Len: %v\n " , tm .Len ())
100
100
if tm .Len () != 0 {
101
101
t .Errorf ("t.Len should be 0, but actually equals %v\n " , tm .Len ())
102
102
}
103
103
}
104
104
105
105
func TestDelete (t * testing.T ) {
106
- maxTTL := 2 // time in seconds
107
- startSize := 3 // initial number of items in map
108
- pruneInterval := 4 // search for expired items every 'pruneInterval' seconds
109
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
106
+ maxTTL := time . Duration ( time . Second * 2 ) // time in seconds
107
+ startSize := 3 // initial number of items in map
108
+ pruneInterval := time . Duration ( time . Second * 4 ) // search for expired items every 'pruneInterval' seconds
109
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
110
110
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
111
+ defer tm .Close ()
111
112
112
113
// populate the TtlMap
113
114
tm .Put ("myString" , "a b c" )
@@ -127,11 +128,12 @@ func TestDelete(t *testing.T) {
127
128
}
128
129
129
130
func TestClear (t * testing.T ) {
130
- maxTTL := 2 // time in seconds
131
- startSize := 3 // initial number of items in map
132
- pruneInterval := 4 // search for expired items every 'pruneInterval' seconds
133
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
131
+ maxTTL := time . Duration ( time . Second * 2 ) // time in seconds
132
+ startSize := 3 // initial number of items in map
133
+ pruneInterval := time . Duration ( time . Second * 4 ) // search for expired items every 'pruneInterval' seconds
134
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
134
135
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
136
+ defer tm .Close ()
135
137
136
138
// populate the TtlMap
137
139
tm .Put ("myString" , "a b c" )
@@ -149,11 +151,12 @@ func TestClear(t *testing.T) {
149
151
}
150
152
151
153
func TestAllFunc (t * testing.T ) {
152
- maxTTL := 2 // time in seconds
153
- startSize := 3 // initial number of items in map
154
- pruneInterval := 4 // search for expired items every 'pruneInterval' seconds
155
- refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
154
+ maxTTL := time . Duration ( time . Second * 2 ) // time in seconds
155
+ startSize := 3 // initial number of items in map
156
+ pruneInterval := time . Duration ( time . Second * 4 ) // search for expired items every 'pruneInterval' seconds
157
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
156
158
tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
159
+ defer tm .Close ()
157
160
158
161
// populate the TtlMap
159
162
tm .Put ("myString" , "a b c" )
@@ -177,3 +180,32 @@ func TestAllFunc(t *testing.T) {
177
180
t .Fatalf ("allItems and tm.m are not equal\n " )
178
181
}
179
182
}
183
+
184
+ func TestGetNoUpdate (t * testing.T ) {
185
+ maxTTL := time .Duration (time .Second * 2 ) // time in seconds
186
+ startSize := 3 // initial number of items in map
187
+ pruneInterval := time .Duration (time .Second * 4 ) // search for expired items every 'pruneInterval' seconds
188
+ refreshLastAccessOnGet := true // update item's lastAccessTime on a .Get()
189
+ tm := New (maxTTL , startSize , pruneInterval , refreshLastAccessOnGet )
190
+ defer tm .Close ()
191
+
192
+ // populate the TtlMap
193
+ tm .Put ("myString" , "a b c" )
194
+ tm .Put ("int" , 1234 )
195
+ tm .Put ("floatPi" , 3.1415 )
196
+ tm .Put ("int_array" , []int {1 , 2 , 3 })
197
+ tm .Put ("boolean" , true )
198
+
199
+ go func () {
200
+ for range time .Tick (time .Second ) {
201
+ tm .GetNoUpdate ("myString" )
202
+ tm .GetNoUpdate ("int_array" )
203
+ }
204
+ }()
205
+
206
+ time .Sleep (maxTTL + pruneInterval )
207
+ t .Logf ("tm.Len: %v\n " , tm .Len ())
208
+ if tm .Len () != 0 {
209
+ t .Errorf ("t.Len should be 0, but actually equals %v\n " , tm .Len ())
210
+ }
211
+ }
0 commit comments