]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Expand to test broken links encountered
authorJim Meyering <jim@meyering.net>
Sat, 6 May 2006 15:44:19 +0000 (15:44 +0000)
committerJim Meyering <jim@meyering.net>
Sat, 6 May 2006 15:44:19 +0000 (15:44 +0000)
implicitly, favoring Solaris 9 and OpenBSD 3.4 behavior.

tests/ls/follow-slink

index ede278ee568b0dc62c99e1ba2b0679e901795ac1..527393e565fc60d5d9e20c2a0a60f93a44312e09 100755 (executable)
@@ -14,6 +14,10 @@ trap '(exit $?); exit' 1 2 13 15
 framework_failure=0
 mkdir $tmp || framework_failure=1
 cd $tmp || framework_failure=1
+
+# Isolate output files from directory being listed
+mkdir dir || framework_failure=1
+cd dir || framework_failure=1
 ln -s link link || framework_failure=1
 
 # Make sure the symlink was created.
@@ -28,6 +32,22 @@ fi
 
 fail=0
 
+# When explicitly listing a broken link, the command must fail.
 ls -L link 2> /dev/null && fail=1
 
+# When encountering a broken link implicitly, Solaris 9 and OpenBSD 3.4
+# list the link, provided no further information about the link needed
+# to be printed.  Since POSIX does not specify one way or the other, we
+# opt for compatibility (this was broken in 5.3.0 through 5.94).
+ls -L > ../out || fail=1
+
+cd .. || fail=1
+
+cat <<\EOF > exp
+link
+EOF
+
+cmp out exp || fail=1
+test $fail = 1 && diff out exp 2> /dev/null
+
 (exit $fail); exit $fail