File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / testsuite / duplicates.test
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Fri Feb 17 15:09:30 2012 UTC (12 years, 4 months ago) by misho
Branches: rsync, MAIN
CVS tags: rsync3_0_9p0, RSYNC3_1_0, RSYNC3_0_9, HEAD
rsync

    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: . "$suitedir/rsync.fns"
   23: 
   24: # Build some hardlinks
   25: 
   26: mkdir "$fromdir"
   27: name1="$fromdir/name1"
   28: name2="$fromdir/name2"
   29: echo "This is the file" > "$name1"
   30: ln -s "$name1" "$name2" || fail "can't create symlink"
   31: 
   32: outfile="$scratchdir/rsync.out"
   33: 
   34: checkit "$RSYNC -avv '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$fromdir/' '$todir/'" "$fromdir" "$todir" \
   35:     | tee "$outfile"
   36: 
   37: # Make sure each file was only copied once...
   38: if [ `grep -c '^name1$' "$outfile"` != 1 ]
   39: then
   40:     test_fail "name1 was not copied exactly once"
   41: fi
   42: if [ `grep -c '^name2 -> ' "$outfile"` != 1 ]
   43: then
   44:     test_fail "name2 was not copied exactly once"
   45: fi
   46: 
   47: # The script would have aborted on error, so getting here means we've won.
   48: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>