mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-10-11 19:42:29 -04:00
rsyncfns.claim_ports(*ports) takes exclusive POSIX byte-range locks on /tmp/rsync_test.lck (offset = port number) so any number of test processes can run concurrently without colliding on a TCP port: a test asking for a port already held blocks until the holder exits. The kernel drops the locks automatically when the holding process dies, so a crashed test releases its ports with no manual cleanup. Ports are claimed in sorted order so two callers requesting the same set in different orders can't deadlock. The lock file is forced to mode 0o666 after creation (the umask would otherwise trim it and lock out a second user on a shared CI runner; EPERM when we're not the owner is fine). proxy-response-line-too-long is the first user: it switches from an ephemeral port to a claimed fixed port (12873). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
automatic testsuite for rsync -*- text -*- We're trying to develop some more substantial tests to prevent rsync regressions. Ideally, all code changes or bug reports would come with an appropriate test suite. You can run these tests by typing "make check" in the build directory. The tests will run using the rsync binary in the build directory, so you do not need to do "make install" first. Indeed, you probably should not install rsync before running the tests. If you instead type "make installcheck" then the suite will test the rsync binary from its installed location (e.g. /usr/local/bin/rsync). You can use this to test a distribution build, or perhaps to run a new test suite against an old version of rsync. Note that in accordance with the GNU Standards, installcheck does not look for rsync on the path. If the tests pass, you should see a report to that effect. Some tests require being root or some other precondition, and so will normally not be checked -- look at the test scripts for more information. If the tests fail, you will see rather more output. The scratch directory will remain in the build directory. It would be useful if you could include the log messages when reporting a failure. These tests also run automatically on the build farm, and you can see the results on http://build.samba.org/.