Expand description
Helper types for tests.
Modules§
- performance
- Functions for computing the performance of stores.
- test_
views - Some
View
s that are easy to use with test cases.
Constants§
- SMALL_
BYTE_ UPPER_ LIMIT - The size of the small value used for tests.
Functions§
- access_
admin_ test - Both checks together.
- add_
prefix - Adds a prefix to a list of key-values
- big_
read_ multi_ values - Reading many keys at a time could trigger an error. This needs to be tested.
- exclusive_
access_ admin_ test - A store can be in exclusive access where it stores the absence of values or in shared access where only values are stored and (key, value) once written are never modified nor erased.
- get_
random_ byte_ vector - Takes a random number generator, a
key_prefix
and extends it by n random bytes. - get_
random_ key_ prefix - Returns a random key prefix used for tests
- get_
random_ key_ value_ operations - A bunch of puts and some deletes.
- get_
random_ key_ values - Takes a random number generator
rng
, a number n and returns n random(key, value)
which are all distinct with key and value being of length 8. - get_
random_ key_ values_ prefix - Takes a random number generator, a
key_prefix
and generates pairs(key, value)
with key obtained by appendinglen_key
random bytes tokey_prefix
and value obtained by creating a vector withlen_value
random bytes. We return n such(key, value)
pairs which are all distinct. - get_
random_ key_ values_ with_ sizes - Generates a list of random key-values with no duplicates
- get_
random_ kset - Builds a random k element subset of n
- get_
random_ test_ scenarios - We build a number of scenarios for testing the reads.
- namespace_
admin_ test - Exercises the namespace functionalities of the
AdminKeyValueStore
. This tests everything except thedelete_all
which would interact with other namespaces. - root_
key_ admin_ test - Tests listing the root keys.
- run_
big_ write_ read - DynamoDB has limits at 1 MB (for pagination), 4 MB (for write)
Let us go right past them at 20 MB of data with writing and then
reading it. And 20 MB is not huge by any mean. All
KeyValueStore
must handle that. - run_
reads - This test starts with a collection of key/values being inserted into the code which is then followed by a number of reading tests. The functionalities being tested are all the reading functionalities:
- run_
test_ batch_ from_ blank - Writes and then reads data under a prefix, and verifies the result.
- run_
writes_ from_ blank - Run many operations on batches always starting from a blank state.
- run_
writes_ from_ state - Run some deterministic and random batches operation and check their correctness
- span_
random_ reordering_ put_ delete - A random reordering of the puts and deletes.
For something like
MapView
it should get us the same result whatever way we are calling. - tombstone_
triggering_ test - That test is especially challenging for ScyllaDB. In its default settings, Scylla has a limitation to 10000 tombstones. A tombstone is an indication that the data has been deleted. That is thus a trie data structure for checking whether a requested key is deleted or not.