MCPcopy Create free account
hub / github.com/cortexproject/cortex / testMemcacheFailing

Function testMemcacheFailing

pkg/chunk/cache/memcached_test.go:113–158  ·  view source on GitHub ↗
(t *testing.T, memcache *cache.Memcached)

Source from the content-addressed store, hash-verified

111}
112
113func testMemcacheFailing(t *testing.T, memcache *cache.Memcached) {
114 numKeys := 1000
115
116 ctx := context.Background()
117 keysIncMissing := make([]string, 0, numKeys)
118 keys := make([]string, 0, numKeys)
119 bufs := make([][]byte, 0, numKeys)
120 // Insert 1000 keys skipping all multiples of 5.
121 for i := range numKeys {
122 keysIncMissing = append(keysIncMissing, fmt.Sprint(i))
123 if i%5 == 0 {
124 continue
125 }
126 keys = append(keys, fmt.Sprint(i))
127 bufs = append(bufs, fmt.Append(nil, i))
128 }
129 memcache.Store(ctx, keys, bufs)
130
131 for range 10 {
132 found, bufs, missing := memcache.Fetch(ctx, keysIncMissing)
133
134 require.Equal(t, len(found), len(bufs))
135 for i := range found {
136 require.Equal(t, found[i], string(bufs[i]))
137 }
138
139 keysReturned := make(map[string]struct{})
140 for _, key := range found {
141 _, ok := keysReturned[key]
142 require.False(t, ok, "duplicate key returned")
143
144 keysReturned[key] = struct{}{}
145 }
146 for _, key := range missing {
147 _, ok := keysReturned[key]
148 require.False(t, ok, "duplicate key returned")
149
150 keysReturned[key] = struct{}{}
151 }
152
153 for _, key := range keys {
154 _, ok := keysReturned[key]
155 require.True(t, ok, "key missing %s", key)
156 }
157 }
158}
159
160func TestMemcacheStop(t *testing.T) {
161 t.Run("unbatched", func(t *testing.T) {

Callers 1

TestMemcacheFailureFunction · 0.85

Calls 4

AppendMethod · 0.80
StoreMethod · 0.65
FetchMethod · 0.65
EqualMethod · 0.65

Tested by

no test coverage detected