MCPcopy
hub / github.com/olric-data/olric / TestIntegration_DMap_Cache_Eviction_MaxIdleDuration

Function TestIntegration_DMap_Cache_Eviction_MaxIdleDuration

integration_test.go:210–257  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

208}
209
210func TestIntegration_DMap_Cache_Eviction_MaxIdleDuration(t *testing.T) {
211 maxKeys := 100000
212 newConfig := func() *config.Config {
213 c := config.New("local")
214 c.PartitionCount = config.DefaultPartitionCount
215 c.ReplicaCount = 1
216 c.WriteQuorum = 1
217 c.ReadQuorum = 1
218 c.LogOutput = io.Discard
219 c.DMaps.MaxIdleDuration = 100 * time.Millisecond
220 require.NoError(t, c.Sanitize())
221 require.NoError(t, c.Validate())
222 return c
223 }
224
225 cluster := newTestOlricCluster(t)
226
227 db := cluster.addMemberWithConfig(t, newConfig())
228
229 ctx := context.Background()
230 c, err := NewClusterClient([]string{db.name})
231 require.NoError(t, err)
232 defer func() {
233 require.NoError(t, c.Close(ctx))
234 }()
235
236 dm, err := c.NewDMap("mydmap")
237 require.NoError(t, err)
238
239 for i := 0; i < maxKeys; i++ {
240 err = dm.Put(ctx, fmt.Sprintf("mykey-%d", i), "myvalue")
241 require.NoError(t, err)
242 }
243
244 <-time.After(250 * time.Millisecond)
245
246 var total int
247
248 for i := 0; i < maxKeys; i++ {
249 _, err = dm.Get(ctx, fmt.Sprintf("mykey-%d", i))
250 if err == ErrKeyNotFound {
251 err = nil
252 total++
253 }
254 require.NoError(t, err)
255 }
256 require.Greater(t, total, 0)
257}
258
259func TestIntegration_DMap_Cache_Eviction_TTLDuration(t *testing.T) {
260 maxKeys := 100000

Callers

nothing calls this directly

Calls 10

CloseMethod · 0.95
NewDMapMethod · 0.95
PutMethod · 0.95
GetMethod · 0.95
NewFunction · 0.92
newTestOlricClusterFunction · 0.85
NewClusterClientFunction · 0.85
addMemberWithConfigMethod · 0.80
SanitizeMethod · 0.65
ValidateMethod · 0.65

Tested by

no test coverage detected