From fe18e9f7e5fb3b856d3da936dd6bd4c8e620635a Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 16 Nov 2007 11:04:31 +0100 Subject: [PATCH] Port readlink-fp-loop to Solaris. * tests/misc/readlink-fp-loop (symlink_loop_msg): New var, which records the symlink-loop message, whose wording is not standardized by Posix. Do not rely on "echo x > p/1" to work when p/1 has a lot of indirect symlinks. (I'm surprised that it works on Linux. Perhaps a Linux bug?) --- ChangeLog | 9 +++++++++ tests/misc/readlink-fp-loop | 12 ++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37a3e0b753..9c78a3de8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2007-11-16 Paul Eggert + + Port readlink-fp-loop to Solaris. + * tests/misc/readlink-fp-loop (symlink_loop_msg): New var, + which records the symlink-loop message, whose wording is + not standardized by Posix. Do not rely on "echo x > p/1" + to work when p/1 has a lot of indirect symlinks. (I'm surprised + that it works on Linux. Perhaps a Linux bug?) + 2007-11-15 Paul Eggert Port to Solaris 'make' and use a Posixish shell on Solaris. diff --git a/tests/misc/readlink-fp-loop b/tests/misc/readlink-fp-loop index 9a4472b6f9..ee65e2816c 100755 --- a/tests/misc/readlink-fp-loop +++ b/tests/misc/readlink-fp-loop @@ -45,8 +45,12 @@ compare out exp || fail=1 # Construct a real loop and make sure readlink still detects it. ln -sf ../s/1 d/2 || framework_failure readlink -v -e p/1 2> out && fail=1 -echo readlink: p/1: Too many levels of symbolic links > exp || framework_failure -compare out exp || fail=1 +readlink_msg=$(cat out) +case $readlink_msg in + 'readlink: p/1: '*) ;; + *) fail=1;; +esac +symlink_loop_msg=${readlink_msg#'readlink: p/1: '} # Exercise the hash table code. ln -nsf ../s/3 d/2 || framework_failure @@ -55,7 +59,7 @@ ln -nsf ../p/5 d/4 || framework_failure ln -nsf ../p/6 d/5 || framework_failure ln -nsf ../p/7 d/6 || framework_failure ln -nsf ../p/8 d/7 || framework_failure -echo x > p/1 || framework_failure +echo x > d/8 || framework_failure readlink -v -e p/1 > out || fail=1 echo "$cwd/d/8" > exp || fail=1 compare out exp || fail=1 @@ -63,7 +67,7 @@ compare out exp || fail=1 # A trivial loop ln -s loop loop readlink -v -e loop 2> out && fail=1 -echo readlink: loop: Too many levels of symbolic links > exp || framework_failure +echo "readlink: loop: $symlink_loop_msg" > exp || framework_failure compare out exp || fail=1 (exit $fail); exit $fail -- 2.47.2