Subject: bug#21130: test fail: 'tests/ls/stat-failed'

From: Assaf Gordon <[email-masked]>
Date: Fri, 24 Jul 2015 17:46:36 -0400

Hello,

checking coreutils 8.24, running on NFS, the test 'ls/stat-failed' fails (log attached).

If I understand correctly,
The test creates a symlink to a directory then removes execute permissions:
    mkdir d
    ln -s / d/s
    chmod 600 d

Then tries to dereference it:
     $ ls -Log d
     ls: cannot access d/s: Permission denied
     total 0
     d????????? ? ?            ? s

The test expect 's' to have 'l' type, on my system it is 'd'.

The attached patch avoids the failure, though I don't know if this is correct or not (perhaps this failure should not be avoided?).

The system is:
     $ uname -a
     Linux XXX 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
     $ gcc --version
      gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4)

The file system is NFS.

regards,
  - assaf
>From 213564fc8c82cd5c48a1572b1a35e1780a4f245a Mon Sep 17 00:00:00 2001
From: Assaf Gordon <[email-masked]>
Date: Fri, 24 Jul 2015 17:27:04 -0400
Subject: [PATCH] tests: avoid test failure for ls/stat-failed.sh

* tests/ls/stat-failed.sh: accept 'l' or 'd' as indication for a symlink
  for a directory inside a directory with no access on NFS.
---
 tests/ls/stat-failed.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/ls/stat-failed.sh b/tests/ls/stat-failed.sh
index 002b71c..f177ed17 100755
--- a/tests/ls/stat-failed.sh
+++ b/tests/ls/stat-failed.sh
@@ -36,7 +36,7 @@ total 0
 ?????????? ? ?            ? s
 EOF
 
-sed 's/^l/?/' out | compare exp - || fail=1
+sed 's/^[ld]/?/' out | compare exp - || fail=1
 
 # Ensure that the offsets in --dired output are accurate.
 rm -f out exp
@@ -49,6 +49,6 @@ cat <<\EOF > exp || fail=1
 //DIRED-OPTIONS// --quoting-style=literal
 EOF
 
-sed 's/^  l/  ?/' out | compare exp - || fail=1
+sed 's/^  [ld]/  ?/' out | compare exp - || fail=1
 
 Exit $fail
-- 
1.9.1