diff options
Diffstat (limited to 'testsuite/alt-dest.test')
-rw-r--r-- | testsuite/alt-dest.test | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/testsuite/alt-dest.test b/testsuite/alt-dest.test new file mode 100644 index 0000000..d2fb5a1 --- /dev/null +++ b/testsuite/alt-dest.test @@ -0,0 +1,68 @@ +#!/bin/sh + +# Copyright (C) 2004-2022 Wayne Davison + +# This program is distributable under the terms of the GNU GPL (see +# COPYING). + +# Test rsync handling of --compare-dest and similar options. + +. "$suitedir/rsync.fns" + +alt1dir="$tmpdir/alt1" +alt2dir="$tmpdir/alt2" +alt3dir="$tmpdir/alt3" + +SSH="$scratchdir/src/support/lsh.sh" + +# Build some files/dirs/links to copy + +hands_setup + +# Setup the alt and chk dirs +$RSYNC -av --include=text --include='*/' --exclude='*' "$fromdir/" "$alt1dir/" +$RSYNC -av --include=etc-ltr-list --include='*/' --exclude='*' "$fromdir/" "$alt2dir/" + +# Create a side dir where there is a candidate destfile of the same name as a sourcefile +echo "This is a test file" >"$fromdir/likely" + +mkdir "$alt3dir" +echo "This is a test file" >"$alt3dir/likely" + +sleep 1 +touch "$fromdir/dir/text" "$fromdir/likely" + +$RSYNC -av --exclude=/text --exclude=etc-ltr-list "$fromdir/" "$chkdir/" + +# Let's do it! +checkit "$RSYNC -avv --no-whole-file \ + --compare-dest='$alt1dir' --compare-dest='$alt2dir' \ + '$fromdir/' '$todir/'" "$chkdir" "$todir" + +rm -rf "$todir" +checkit "$RSYNC -avv --no-whole-file \ + --copy-dest='$alt1dir' --copy-dest='$alt2dir' \ + '$fromdir/' '$todir/'" "$fromdir" "$todir" + +# Test that copy_file() works correctly with tmpfiles +for maybe_inplace in '' --inplace; do + rm -rf "$todir" + checkit "$RSYNC -av $maybe_inplace --copy-dest='$alt3dir' \ + '$fromdir/' '$todir/'" "$fromdir" "$todir" + + for srchost in '' 'localhost:'; do + if [ -z "$srchost" ]; then + desthost='localhost:' + else + desthost='' + fi + + rm -rf "$todir" + checkit "$RSYNC -ave '$SSH' --rsync-path='$RSYNC' $maybe_inplace \ + --copy-dest='$alt3dir' '$srchost$fromdir/' '$desthost$todir/'" \ + "$fromdir" "$todir" + done +done + +# The script would have aborted on error, so getting here means we've won. +exit 0 |