mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-02-01 02:32:04 -05:00
Add a test that when none of -l, -L, -a are specified symlinks are not
copied at all.
This commit is contained in:
@@ -210,5 +210,20 @@ EOF
|
||||
}
|
||||
|
||||
|
||||
build_symlinks() {
|
||||
fromdir="$scratchdir/from"
|
||||
todir="$scratchdir/to"
|
||||
mkdir "$fromdir"
|
||||
date >"$fromdir/referent"
|
||||
ln -s referent "$fromdir/relative"
|
||||
ln -s "$fromdir/referent" "$fromdir/absolute"
|
||||
ln -s nonexistent "$fromdir/dangling"
|
||||
}
|
||||
|
||||
test_fail() {
|
||||
echo "$@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# be reproducible
|
||||
umask 077
|
||||
25
testsuite/symlink-ignore.test
Normal file
25
testsuite/symlink-ignore.test
Normal file
@@ -0,0 +1,25 @@
|
||||
#! /bin/sh
|
||||
|
||||
# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
|
||||
|
||||
# This program is distributable under the terms of the GNU GPL (see
|
||||
# COPYING).
|
||||
|
||||
# Test rsync's somewhat over-featured symlink control: the default
|
||||
# behaviour is that symlinks should not be copied at all.
|
||||
|
||||
. $srcdir/testsuite/rsync.fns
|
||||
|
||||
build_symlinks
|
||||
|
||||
# Copy recursively, but without -l or -L or -a, and all the symlinks
|
||||
# should be missing.
|
||||
"$rsync_bin" -r "$fromdir/" "$todir" || test_fail "rsync returned $?"
|
||||
|
||||
[ -e $todir/referent ] || test_fail "referent was not copied"
|
||||
[ -e $todir/from ] && test_fail "extra level of directories"
|
||||
[ -e $todir/dangling ] && test_fail "dangling symlink was copied"
|
||||
[ -e $todir/relative ] && test_fail "relative symlink was copied"
|
||||
[ -e $todir/absolute ] && test_fail "absolute symlink was copied"
|
||||
|
||||
true # cool
|
||||
Reference in New Issue
Block a user