From d0f2444aa59ac15ada3ba2d6aefcb65b0e1e8437 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 13 Jun 2026 16:51:24 +1000 Subject: [PATCH] testsuite: force C locale in reverse-daemon-delta byte-count parse rsync groups the "sent/received N bytes" summary numbers using the locale's thousands separator (e.g. de_DE uses '.'), which broke the [\d,]+ parser and failed the test for testers in non-C locales. Run the peer client under LC_ALL=C so the output is deterministic. Reported-by: Michael Mess --- testsuite/reverse-daemon-delta_test.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/testsuite/reverse-daemon-delta_test.py b/testsuite/reverse-daemon-delta_test.py index 707977dd..b073b578 100644 --- a/testsuite/reverse-daemon-delta_test.py +++ b/testsuite/reverse-daemon-delta_test.py @@ -57,8 +57,11 @@ def peer_client(args, label): """Run the OLD client (RSYNC_PEER) and return (sent, received) wire bytes parsed from rsync's summary line. Fails the test on non-zero exit.""" argv = shlex.split(RSYNC_PEER) + args + # Force C locale: rsync groups the "sent/received N bytes" numbers per the + # locale (e.g. de_DE uses '.' for thousands), which would break parsing. proc = subprocess.run(argv, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, text=True) + stderr=subprocess.STDOUT, text=True, + env={**os.environ, 'LC_ALL': 'C'}) print(proc.stdout, end='') if proc.returncode != 0: test_fail(f"{label}: old client exited {proc.returncode}")