Jim Meyering wrote:
> You can probably find out by rerunning that test with e.g.,
> 
>   SHELL=bash make check -C tests TESTS=cp/fail-perm VERBOSE=yes

Find attached the test-suite.log that this produced.

Here's what's going on:

$ ls -ld DD
drwx------+  3 haible   haible         3 Sep  2 17:23 DD
$ ls -ld DD/D
drwxrwxr-x+  2 haible   haible         2 Sep  2 17:23 DD/D
$ ls -l DD/D
total 0
$ ls -la DD/D
total 10
drwxrwxr-x+  2 haible   haible         2 Sep  2 17:23 .
drwx------+  3 haible   haible         3 Sep  2 17:23 ..
$ /bin/rmdir DD/D
rmdir: directory "DD/D": Search or write permission needed
$ truss /bin/rmdir DD/D
...
rmdir("DD/D")                                   Err#13 EACCES
...

This is on an NFS volume.

> A blind patch (without understanding, always risky),
> this might solve the problem:
> 
> diff --git a/tests/cp/fail-perm b/tests/cp/fail-perm
> index 404c83e..4009c00 100755
> --- a/tests/cp/fail-perm
> +++ b/tests/cp/fail-perm
> @@ -53,6 +53,6 @@ cp --target-directory=symlink F 2> out && fail=1
>  sed 's/: The file access permissions.*/: Permission denied/'<out>o1;mv o1 out
>  compare out exp || fail=1
> 
> -chmod 700 D
> +chmod 700 D DD
> 
>  Exit $fail

No, it doesn't help.

Bruno
-- 
In memoriam Robert Mensah <http://en.wikipedia.org/wiki/Robert_Mensah>
========================================================
   GNU coreutils 8.12.178-df9cd: tests/test-suite.log   
========================================================

1 of 1 test failed.  

.. contents:: :depth: 2


FAIL: cp/fail-perm (exit: 1)
============================

++ initial_cwd_=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests
++ fail=0
+++ testdir_prefix_
+++ printf gt
++ pfx_=gt
+++ mktempd_ /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests gt-fail-perm.XXXX
+++ case $# in
+++ destdir_=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests
+++ template_=gt-fail-perm.XXXX
+++ MAX_TRIES_=4
+++ case $destdir_ in
+++ case $template_ in
++++ unset TMPDIR
++++ mktemp -d -t -p /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests gt-fail-perm.XXXX
+++ d=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
+++ case $d in
+++ test -d /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
++++ ls -dgo /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
++++ tr S -
+++ perms='drwx------ 2 2 -ep  2 17:23 /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD'
+++ case $perms in
+++ test 0 = 0
+++ echo /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
+++ return
++ test_dir_=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
++ cd /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
++ gl_init_sh_nl_='
'
++ IFS=' 	
'
++ for sig_ in 1 2 3 13 15
+++ expr 1 + 128
++ eval 'trap '\''Exit 129'\'' 1'
+++ trap 'Exit 129' 1
++ for sig_ in 1 2 3 13 15
+++ expr 2 + 128
++ eval 'trap '\''Exit 130'\'' 2'
+++ trap 'Exit 130' 2
++ for sig_ in 1 2 3 13 15
+++ expr 3 + 128
++ eval 'trap '\''Exit 131'\'' 3'
+++ trap 'Exit 131' 3
++ for sig_ in 1 2 3 13 15
+++ expr 13 + 128
++ eval 'trap '\''Exit 141'\'' 13'
+++ trap 'Exit 141' 13
++ for sig_ in 1 2 3 13 15
+++ expr 15 + 128
++ eval 'trap '\''Exit 143'\'' 15'
+++ trap 'Exit 143' 15
++ trap remove_tmp_ 0
+ path_prepend_ ../src
+ test 1 '!=' 0
+ path_dir_=../src
+ case $path_dir_ in
++ cd /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/../src
++ echo /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/src
+ abs_path_dir_=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/src
+ case $abs_path_dir_ in
+ PATH=/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/src:/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/src:/usr/xpg4/bin:/home/haible/prefix-solaris9-sparc/bin:/opt/solstudio12.2/bin:/home/haible/bin:/opt/fsw/bin:/opt/tww/bin:/opt/solstudio12.2/bin:/usr/dt/bin:/usr/openwin/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/ccs/bin:/etc:/usr/ucb
+ create_exe_shims_ /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/src
+ case $EXEEXT in
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ print_ver_ cp
+ test yes = yes
+ local i
+ for i in '$*'
+ env cp --version
cp (GNU coreutils) 8.12.178-df9cd
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbj"orn Granlund, David MacKenzie, and Jim Meyering.
+ skip_if_root_
+ uid_is_privileged_
++ id -u
+ my_uid=1088
+ case $my_uid in
+ return 1
+ chmod g-s .
+ mkdir D D/D
+ touch D/a
+ chmod 0 D/a
+ chmod u=rx,go=,-st D
+ cp -pR D DD
++ ls -ld DD
++ cut -b-10
+ mode=dr-x------
+ test dr-x------ = dr-x------
+ chmod 0 D
+ ln -s D/D symlink
+ touch F
+ cat
+ cp F symlink
+ sed 's/: The file access permissions.*/: Permission denied/'
+ mv o1 out
+ compare out exp
+ cmp out exp
+ cp --target-directory=symlink F
+ sed 's/: The file access permissions.*/: Permission denied/'
+ mv o1 out
+ compare out exp
+ cmp out exp
+ chmod 700 D
+ Exit 0
+ set +e
+ exit 0
+ exit 0
+ remove_tmp_
+ __st=0
+ cleanup_
+ :
+ cd /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests
+ chmod -R u+rwx /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
+ rm -rf /home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD
rm: cannot remove `/home/haible/multibuild-1210/solaris10-cc/coreutils-8.12.178-df9cd/tests/gt-fail-perm.gqYD/DD/D': Permission denied
+ test 0 = 0
+ __st=1
+ exit 1

Reply via email to