Check whether code to eliminate duplicate filenames works
[rsync/rsync.git] / testsuite / duplicates.test
CommitLineData
766526c7
MP
1#! /bin/sh
2
3# Copyright (C) 2002 by Martin Pool <mbp@samba.org>
4
5# This program is distributable under the terms of the GNU GPL see
6# COPYING).
7
8# Test rsync handling of duplicate filenames.
9
10# It's quite possible that the user might specify the same source file
11# more than once on the command line, perhaps through shell variables
12# or wildcard expansions. It might cause problems for rsync if the
13# same name occurred more than once in the file list, because we might
14# be trying to update the first copy and generate checksums for the
15# second copy at the same time. See clean_flist() for the implementation.
16
17# We don't need to worry about hardlinks or symlinks. Because we
18# always rename-and-replace the new copy, they can't affect us.
19
20# This test is not great, because it is a timing-dependent bug.
21
22. $srcdir/testsuite/rsync.fns
23
24set -x
25
26# Build some hardlinks
27
28fromdir="$scratchdir/from"
29todir="$scratchdir/to"
30
31# TODO: Need to test whether hardlinks are possible on this OS/filesystem
32
33mkdir "$fromdir"
34name1="$fromdir/name1"
35name1="$fromdir/name2"
36echo "This is the file" > "$name1"
37ln -s "$name1" "$name2" || fail "can't create symlink"
38
39checkit "rsync -avv \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$fromdir/\" \"$todir/\"" "$fromdir" "$todir"
40
41exit 0
42# last [] may have failed but if we get here then we've won
43