MCPcopy Create free account
hub / github.com/apple/foundationdb / testSnapshotCache

Function testSnapshotCache

fdbclient/RYWIterator.cpp:228–347  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

226}
227
228void testSnapshotCache() {
229 Arena arena;
230 SnapshotCache cache(&arena);
231 WriteMap writes(&arena);
232
233 Standalone<VectorRef<KeyValueRef>> keys;
234 keys.push_back_deep(keys.arena(), KeyValueRef(LiteralStringRef("d"), LiteralStringRef("doo")));
235 keys.push_back_deep(keys.arena(), KeyValueRef(LiteralStringRef("e"), LiteralStringRef("eoo")));
236 keys.push_back_deep(keys.arena(), KeyValueRef(LiteralStringRef("e\x00"), LiteralStringRef("zoo")));
237 keys.push_back_deep(keys.arena(), KeyValueRef(LiteralStringRef("f"), LiteralStringRef("foo")));
238 cache.insert(KeyRangeRef(LiteralStringRef("d"), LiteralStringRef("f\x00")), keys);
239
240 cache.insert(KeyRangeRef(LiteralStringRef("g"), LiteralStringRef("h")), Standalone<VectorRef<KeyValueRef>>());
241
242 Standalone<VectorRef<KeyValueRef>> keys2;
243 keys2.push_back_deep(keys2.arena(), KeyValueRef(LiteralStringRef("k"), LiteralStringRef("koo")));
244 keys2.push_back_deep(keys2.arena(), KeyValueRef(LiteralStringRef("l"), LiteralStringRef("loo")));
245 cache.insert(KeyRangeRef(LiteralStringRef("j"), LiteralStringRef("m")), keys2);
246
247 writes.mutate(LiteralStringRef("c"), MutationRef::SetValue, LiteralStringRef("c--"), true);
248 writes.clear(KeyRangeRef(LiteralStringRef("c\x00"), LiteralStringRef("e")), true);
249 writes.mutate(LiteralStringRef("c\x00"), MutationRef::SetValue, LiteralStringRef("c00--"), true);
250 WriteMap::iterator it3(&writes);
251 writes.mutate(LiteralStringRef("d"), MutationRef::SetValue, LiteralStringRef("d--"), true);
252 writes.mutate(LiteralStringRef("e"), MutationRef::SetValue, LiteralStringRef("e++"), true);
253 writes.mutate(LiteralStringRef("i"), MutationRef::SetValue, LiteralStringRef("i--"), true);
254
255 KeyRange searchKeys = KeyRangeRef(LiteralStringRef("a"), LiteralStringRef("z"));
256
257 RYWIterator it(&cache, &writes);
258 it.skip(searchKeys.begin);
259 while (true) {
260 fprintf(stderr,
261 "b: '%s' e: '%s' type: %s value: '%s'\n",
262 printable(it.beginKey().toStandaloneStringRef()).c_str(),
263 printable(it.endKey().toStandaloneStringRef()).c_str(),
264 it.is_empty_range() ? "empty" : (it.is_kv() ? "keyvalue" : "unknown"),
265 it.is_kv() ? printable(it.kv(arena)->value).c_str() : "");
266 if (it.endKey() >= searchKeys.end)
267 break;
268 ++it;
269 }
270 fprintf(stderr, "end\n");
271
272 it.skip(searchKeys.end);
273 while (true) {
274 fprintf(stderr,
275 "b: '%s' e: '%s' type: %s value: '%s'\n",
276 printable(it.beginKey().toStandaloneStringRef()).c_str(),
277 printable(it.endKey().toStandaloneStringRef()).c_str(),
278 it.is_empty_range() ? "empty" : (it.is_kv() ? "keyvalue" : "unknown"),
279 it.is_kv() ? printable(it.kv(arena)->value).c_str() : "");
280 if (it.beginKey() <= searchKeys.begin)
281 break;
282 --it;
283 }
284 fprintf(stderr, "end\n");
285

Callers

nothing calls this directly

Calls 15

fprintfFunction · 0.85
toStandaloneStringRefMethod · 0.80
printableFunction · 0.70
mutateMethod · 0.65
clearMethod · 0.65
KeyValueRefClass · 0.50
KeyRangeRefClass · 0.50
push_back_deepMethod · 0.45
insertMethod · 0.45
skipMethod · 0.45
c_strMethod · 0.45
beginKeyMethod · 0.45

Tested by

no test coverage detected