mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-01-30 09:42:04 -05:00
canonical form ``$RSYNC'' (set in testsuite/rsync.fns). This prevents any stray rsync binaries in the user's PATH from being picked up by the test scripts and ensures that the newly built rsync binary is used always.
57 lines
1.7 KiB
Bash
57 lines
1.7 KiB
Bash
#! /bin/sh
|
|
|
|
# Copyright (C) 2002 by Martin Pool <mbp@samba.org>
|
|
|
|
# This program is distributable under the terms of the GNU GPL see
|
|
# COPYING).
|
|
|
|
# Test rsync handling of duplicate filenames.
|
|
|
|
# It's quite possible that the user might specify the same source file
|
|
# more than once on the command line, perhaps through shell variables
|
|
# or wildcard expansions. It might cause problems for rsync if the
|
|
# same name occurred more than once in the file list, because we might
|
|
# be trying to update the first copy and generate checksums for the
|
|
# second copy at the same time. See clean_flist() for the implementation.
|
|
|
|
# We don't need to worry about hardlinks or symlinks. Because we
|
|
# always rename-and-replace the new copy, they can't affect us.
|
|
|
|
# This test is not great, because it is a timing-dependent bug.
|
|
|
|
. $srcdir/testsuite/rsync.fns
|
|
|
|
test_skipped "Known minor bug in this code"
|
|
|
|
set -x
|
|
|
|
# Build some hardlinks
|
|
|
|
fromdir="$scratchdir/from"
|
|
todir="$scratchdir/to"
|
|
|
|
mkdir "$fromdir"
|
|
name1="$fromdir/name1"
|
|
name2="$fromdir/name2"
|
|
echo "This is the file" > "$name1"
|
|
ln -s "$name1" "$name2" || fail "can't create symlink"
|
|
|
|
outfile="$scratchdir/rsync.out"
|
|
|
|
checkit "$RSYNC -avv \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$todir/\"" "$fromdir" "$todir" \
|
|
| tee "$outfile"
|
|
|
|
# Make sure each file was only copied once...
|
|
if [ `grep -c '^name1$' "$outfile"` != 1 ]
|
|
then
|
|
test_xfail "name1 was not copied exactly once"
|
|
fi
|
|
if [ `grep -c '^name2$' "$outfile"` != 1 ]
|
|
then
|
|
test_xfail "name2 was not copied exactly once"
|
|
fi
|
|
|
|
exit 0
|
|
# last [] may have failed but if we get here then we've won
|
|
|