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:
2026-07-05 18:33:04 +02:00
parent 0c2364bd62
commit 1c26a7a712
+14 -1
View File
@@ -73,6 +73,7 @@ def netem_apply(profile):
if not params:
netem_reset()
return
netem_reset()
cmd = ["sudo", "tc", "qdisc", "add", "dev", NETWORK_INTERFACE, "root", "netem"]
cmd += ["rate", params["rate"]]
cmd += ["delay", params["delay"], params["jitter"]]
@@ -288,7 +289,19 @@ path = {source_dir}
["rsync", "--daemon", "--no-detach", f"--config={rsyncd_conf}"],
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:
name = case["name"]