Files
rsync/testsuite
Andrew TridgellandClaude Opus 4.7 d6124a82a4 testsuite: cross-directory/temp/backup/dest coverage at depth
Fill the highest-restructure-risk gap: options that do two-directory / rename /
outside-tree work, asserted at >=3 levels deep with the aux tree kept outside
the main tree, and asserting the option's specific property rather than just
tree equality (which the ported tests already cover).

  alt-dest-deep  --link-dest hardlinks unchanged files (same inode), --copy-dest
                 copies (never links), --compare-dest omits unchanged files;
                 ref tree outside both src and dest.
  temp-dir       cross-dir temp->final rename at depth; temp dir left clean; a
                 missing --temp-dir fails (so the option is proven consulted).
  partial        --partial keeps the partial in the dest file; relative
                 --partial-dir stages per-directory at depth (pre-seed +
                 interrupt/resume); absolute --partial-dir writes the partial
                 outside the tree.
  inplace        --inplace keeps the destination inode across a delta update;
                 the default temp+rename path replaces it.
  append         --append completes truncated files tail-only; --append-verify
                 repairs a corrupted prefix (protocol >= 30).
  backup-deep    --suffix saves <name>S beside the new file; --backup-dir
                 relocates old files to a parallel deep tree outside the dest
                 and captures deletions under --delete.

All green on master and under --protocol=29/30.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 12:31:52 +10:00
..
2021-09-26 16:57:55 -07:00

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/.