]> git.ipfire.org Git - thirdparty/rsync.git/commit
testsuite: secure stdio-pipe daemon transport by default, opt-in TCP
authorAndrew Tridgell <andrew@tridgell.net>
Thu, 21 May 2026 04:14:13 +0000 (14:14 +1000)
committerAndrew Tridgell <andrew@tridgell.net>
Fri, 22 May 2026 04:34:52 +0000 (14:34 +1000)
commitbea8a3a16fcd1f593fdd7de053ef263b4c9e57e7
treeae5185a866271df053a02488c82d2ff0585dc34f
parentbf8aab51e8cd1879f98564698e26d732e0a66370
testsuite: secure stdio-pipe daemon transport by default, opt-in TCP

Daemon-mode tests default to the stdio-pipe transport (RSYNC_CONNECT_PROG),
which opens no listening socket -- so `make check` never exposes a network
service. Real TCP is opt-in via `runtests.py --use-tcp`, with the daemon
bound to loopback (127.0.0.1) on a claim_ports()-reserved port; CI runs the
suite both ways.

start_test_daemon() is the single seam every daemon test uses: the secure
pipe by default, a real rsyncd on a claimed loopback port under --use-tcp.
Tests with no pipe equivalent (the fake-proxy listener and the reverse-DNS
hostname-ACL daemon test) are gated behind require_tcp().

`make check` also now runs the suite in parallel by default (CHECK_J=8);
the claim_ports() byte-range locks make that safe across concurrent runs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 files changed:
.github/workflows/almalinux-8-build.yml
.github/workflows/cygwin-build.yml
.github/workflows/freebsd-build.yml
.github/workflows/macos-build.yml
.github/workflows/netbsd-build.yml
.github/workflows/openbsd-build.yml
.github/workflows/solaris-build.yml
.github/workflows/ubuntu-22.04-build.yml
.github/workflows/ubuntu-build.yml
Makefile.in
runtests.py
testsuite/alt-dest-symlink-race_test.py
testsuite/bare-do-open-symlink-race_test.py
testsuite/batch-mode_test.py
testsuite/chdir-symlink-race_test.py
testsuite/chmod-option_test.py
testsuite/copy-dest-source-symlink_test.py
testsuite/daemon-chroot-acl_test.py
testsuite/daemon-gzip-download_test.py
testsuite/daemon-gzip-upload_test.py
testsuite/daemon-refuse-compress_test.py
testsuite/daemon_test.py
testsuite/proxy-response-line-too-long_test.py
testsuite/rsyncfns.py
testsuite/sender-flist-symlink-leak_test.py