summaryrefslogtreecommitdiff
path: root/tests/cp/fail-perm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cp/fail-perm')
-rwxr-xr-xtests/cp/fail-perm16
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/cp/fail-perm b/tests/cp/fail-perm
index c2b18801b..218785a9f 100755
--- a/tests/cp/fail-perm
+++ b/tests/cp/fail-perm
@@ -16,7 +16,7 @@ framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
-mkdir D || framework_failure=1
+mkdir D D/D || framework_failure=1
touch D/a || framework_failure=1
chmod 0 D/a || framework_failure=1
chmod 500 D || framework_failure=1
@@ -36,6 +36,20 @@ cp -pR D DD > /dev/null 2>&1 && fail=1
set X `ls -ld DD`
shift
test "$1" = dr-x------ || fail=1
+
+chmod 0 D
+ln -s D/D symlink
+touch F
+cat > exp <<\EOF
+cp: accessing `symlink': Permission denied
+EOF
+
+cp F symlink 2> out && fail=1
+cmp out exp || { (diff -c out exp) 2> /dev/null; fail=1; }
+
+cp --target-directory=symlink F 2> out && fail=1
+cmp out exp || { (diff -c out exp) 2> /dev/null; fail=1; }
+
chmod 700 D
(exit $fail); exit $fail