Skip to content
Snippets Groups Projects
Commit 554d424f authored by ananyabalagere's avatar ananyabalagere
Browse files

pulling alexs tests

parent f7708e72
No related branches found
No related tags found
No related merge requests found
......@@ -101,14 +101,34 @@ def basic_shuffle(conductor: ClusterConductor, dir, log: Logger):
return True, "ok"
def partitioned_shards(conductor: ClusterConductor, dir, log: Logger):
with KVSTestFixture(conductor, dir, log, node_count=4) as fx:
###
# test 2
# partition the shards
# put a bunch of keys
# we MUST probablistically encounter some hanging there.
# have a time out where if it doesnt hang after like 50 keys, then its just wrong.
def basic_shuffle_2(conductor: ClusterConductor, dir, log: Logger):
with KVSTestFixture(conductor, dir, log, node_count=3) as fx:
c = KVSMultiClient(fx.clients, "client", log)
conductor.add_shard("shard1", conductor.get_nodes([0, 1]))
fx.broadcast_view(conductor.get_shard_view())
## basic shuffle 2
# view= 1 shard with 2 nodes
# put 50 keys
# get_all keys from shard 1
# add shard with 1 node
# get_all keys from shard 2
# get_all keys from shard 1
# check both returned sets are disjoint and that their union makes the original get_all results
node_to_put = 0
base_key = "key"
for i in range(0, 50):
r = c.put(node_to_put, f"{base_key}{i}", f"{i}", timeout=10)
assert r.ok, f"expected ok for new key, got {r.status_code}"
node_to_put += 1
node_to_put = node_to_put % 4
r = c.get_all(0, timeout=10) # should get all of shard 1's keys
assert r.ok, f"expected ok for get, got {r.status_code}"
original_get_all = r.json()["items"]
conductor.add_shard("shard2", conductor.get_nodes([2]))
return True, "ok"
SHUFFLE_TESTS = [TestCase("shuffle_basic", basic_shuffle)]
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment