mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-09-21 09:45:06 -04:00
Running the 3.5.0 suite against this branch across the fleet left four not-OK cells, all macOS, identical on both backport branches. Both causes are here, not in the code under test. t_symlink_secure.c lives at the tree ROOT, so fleettest's overlay -- which replaces runtests.py and testsuite/ -- does not update it. This branch was still running a version predating the HAVE_MKNODAT guard, so on a platform without mknodat() (macOS 10.13) it asserted a confinement the build deliberately compiles out and reported "basename symlink was followed -> module escape". Alarming and wrong: there is no escape, the helper was just older than the test driving it. Taking the current helper makes it skip there, which is what the fleet config already expects for that target. partial-protected-regular-retry-policy exercises the receiver's EACCES recovery path. That path is 3.5.0-only -- the chmod-on-denied-open work is not backported, which is also why partial_nowrite is already excluded here -- so the test cannot reach what it checks and reports "inconclusive" rather than skipping. Excluded for the same reason as its sibling. Verified on the x86-64 macOS box: the policy test is excluded and symlink-mknod-fakesuper-symlink-race now skips, overall result 0. A 3.5.0 build on the same hardware passes both, so neither is a platform limitation.
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/.