test: robust netem setup and rsync daemon startup
- netem_apply now calls netem_reset() first to clear any leftover qdisc - Rsync daemon startup polls TCP port instead of fixed sleep - Dest dir cleared at start of run
This commit is contained in:
@@ -73,6 +73,7 @@ def netem_apply(profile):
|
|||||||
if not params:
|
if not params:
|
||||||
netem_reset()
|
netem_reset()
|
||||||
return
|
return
|
||||||
|
netem_reset()
|
||||||
cmd = ["sudo", "tc", "qdisc", "add", "dev", NETWORK_INTERFACE, "root", "netem"]
|
cmd = ["sudo", "tc", "qdisc", "add", "dev", NETWORK_INTERFACE, "root", "netem"]
|
||||||
cmd += ["rate", params["rate"]]
|
cmd += ["rate", params["rate"]]
|
||||||
cmd += ["delay", params["delay"], params["jitter"]]
|
cmd += ["delay", params["delay"], params["jitter"]]
|
||||||
@@ -288,7 +289,19 @@ path = {source_dir}
|
|||||||
["rsync", "--daemon", "--no-detach", f"--config={rsyncd_conf}"],
|
["rsync", "--daemon", "--no-detach", f"--config={rsyncd_conf}"],
|
||||||
stdout=subprocess.DEVNULL, stderr=None
|
stdout=subprocess.DEVNULL, stderr=None
|
||||||
)
|
)
|
||||||
time.sleep(0.5)
|
for _ in range(25):
|
||||||
|
time.sleep(0.1)
|
||||||
|
if rsync_daemon.poll() is not None:
|
||||||
|
print(f" rsync daemon exited prematurely (rc={rsync_daemon.returncode})")
|
||||||
|
raise RuntimeError("rsync daemon failed to start")
|
||||||
|
try:
|
||||||
|
with socket.create_connection(("127.0.0.1", rsync_port), timeout=0.5):
|
||||||
|
break
|
||||||
|
except (ConnectionRefusedError, OSError):
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
print(f" timed out waiting for rsync daemon on port {rsync_port}")
|
||||||
|
raise RuntimeError("rsync daemon did not start")
|
||||||
|
|
||||||
for case in RSYNC_CASES:
|
for case in RSYNC_CASES:
|
||||||
name = case["name"]
|
name = case["name"]
|
||||||
|
|||||||
Reference in New Issue
Block a user