diff options
author | Wayne Davison <wayned@samba.org> | 2005-01-31 18:09:23 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2005-01-31 18:09:23 +0000 |
commit | 408aa7b24c7ee02d530e05852fd8eb0f5abfc3fd (patch) | |
tree | 397a3984c8ec649b2cc869f4dd1a1f0c215b361a /testsuite | |
parent | 776b9d1c0084e7f1d9e26071540f349193ed534b (diff) | |
download | rsync-408aa7b24c7ee02d530e05852fd8eb0f5abfc3fd.tar.gz |
Improved the exclude tests to make sure that the filter files
are interacting with --delete-during correctly.
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/exclude.test | 53 |
1 files changed, 39 insertions, 14 deletions
diff --git a/testsuite/exclude.test b/testsuite/exclude.test index 18afcdea..d314941d 100644 --- a/testsuite/exclude.test +++ b/testsuite/exclude.test @@ -22,6 +22,7 @@ export HOME CVSIGNORE makepath "$fromdir/foo/down/to/you" makepath "$fromdir/bar/down/to/foo/too" +makepath "$fromdir/bar/down/to/bar/baz" makepath "$fromdir/mid/for/foo/and/that/is/who" cat >"$fromdir/.excl" <<EOF - down @@ -30,7 +31,6 @@ cat >"$fromdir/.excl" <<EOF - .excl - *.bak - *.old -- *.junk EOF echo kept >"$fromdir/foo/file1" echo removed >"$fromdir/foo/file2" @@ -48,15 +48,19 @@ echo cvsout >"$fromdir/bar/down/to/home-cvs-exclude" cat >"$fromdir/bar/down/to/.excl2" <<EOF - .excl2 EOF +cat >"$fromdir/bar/down/to/foo/.excl2" <<EOF ++ *.junk +EOF echo keeper >"$fromdir/bar/down/to/foo/file1" echo cvsout >"$fromdir/bar/down/to/foo/file1.bak" echo gone >"$fromdir/bar/down/to/foo/file3" echo lost >"$fromdir/bar/down/to/foo/file4" -echo cvsout >"$fromdir/bar/down/to/foo/file4.junk" +echo cvsout-but-filtin >"$fromdir/bar/down/to/foo/file4.junk" echo smashed >"$fromdir/bar/down/to/foo/to" -cat >"$fromdir/bar/down/to/foo/.excl2" <<EOF -+ *.junk +cat >"$fromdir/bar/down/to/bar/.excl2" <<EOF +- *.deep EOF +echo filtout >"$fromdir/bar/down/to/bar/baz/file5.deep" # This one should be ineffectual cat >"$fromdir/mid/.excl2" <<EOF - extra @@ -115,7 +119,7 @@ $RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" # Now, test if rsync excludes the same files. checkit "$RSYNC -avv --exclude-from=\"$excl\" \ - --delete \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" + --delete-during \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" # Modify the chk dir by removing cvs-ignored files and then tweaking the dir times. @@ -130,27 +134,48 @@ $RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" # Now, test if rsync excludes the same files, this time with --cvs-exclude # and --delete-excluded. -checkit "$RSYNC -avvC --filter=\". $excl\" \ - --delete-excluded \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" +checkit "$RSYNC -avvC --filter=\". $excl\" --delete-excluded \ + --delete-during \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" # Modify the chk dir for our merge-exclude test and then tweak the dir times. -rm "$chkdir"/.excl rm "$chkdir"/foo/file1 -rm "$chkdir"/bar/.excl -rm "$chkdir"/bar/down/to/.excl2 -rm "$chkdir"/bar/down/to/foo/.excl2 -rm "$chkdir"/mid/.excl +rm "$chkdir"/bar/down/to/bar/baz/*.deep cp -p "$fromdir"/bar/down/to/foo/*.junk "$chkdir"/bar/down/to/foo cp -p "$fromdir"/bar/down/to/foo/to "$chkdir"/bar/down/to/foo +$RSYNC -av --existing --delete-excluded \ + --include='*/' --include='.excl*' --exclude='*' "$fromdir/" "$todir/" + +echo retained >"$todir"/bar/down/to/bar/baz/nodel.deep +cp -p "$todir"/bar/down/to/bar/baz/nodel.deep "$chkdir"/bar/down/to/bar/baz + $RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" # Now, test if rsync excludes the same files, this time with a merge-exclude # file. -checkit "sed '/!/d' \"$excl\" | $RSYNC -avv -f :_.excl -f ._- \ - --delete-excluded \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" +checkit "sed '/!/d' \"$excl\" | + $RSYNC -avv -f :_.excl -f ._- \ + --delete-during \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" + +# Remove the files that --delete-excluded will delete. + +rm "$chkdir"/.excl +rm "$chkdir"/bar/.excl +rm "$chkdir"/bar/down/to/.excl2 +rm "$chkdir"/bar/down/to/foo/.excl2 +rm "$chkdir"/bar/down/to/bar/.excl2 +rm "$chkdir"/mid/.excl +rm "$chkdir"/bar/down/to/bar/baz/nodel.deep + +$RSYNC -av --existing --include='*/' --exclude='*' "$fromdir/" "$chkdir/" + +# Finally, try the prior command with --delete-before and --delete-excluded. + +checkit "sed '/!/d' \"$excl\" | + $RSYNC -avv -f :_.excl -f ._- --delete-excluded \ + --delete-before \"$fromdir/\" \"$todir/\"" "$chkdir" "$todir" # The script would have aborted on error, so getting here means we've won. exit 0 |