Use test -p to test for fifos, rather
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 19 Apr 2005 07:26:18 +0000 (07:26 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 19 Apr 2005 07:26:18 +0000 (07:26 +0000)
than the (incorrect) test -f and the (inadequate) ls.  ls is
inadequate because on some hosts a buggy mv will create a file of
the wrong type (problem reported by Eric Blake).  Skip this test
if test -p doesn't work.

tests/mv/mv-special-1

index 7c7d05c..894d356 100755 (executable)
@@ -27,6 +27,7 @@ mkdir $tmp || framework_failure=1
 cd $tmp || framework_failure=1
 rm -f $null || framework_failure=1
 mknod $null p || framework_failure=1
+test -p $null || framework_failure=1
 mkdir -p $dir/a/b/c $dir/d/e/f || framework_failure=1
 touch $dir/a/b/c/file1 $dir/d/e/f/file2 || framework_failure=1
 
@@ -43,11 +44,10 @@ fi
 fail=0
 mv --verbose $null $dir $other_partition_tmpdir > out || fail=1
 # Make sure the files are gone.
-test -f $null && fail=1
+test -p $null && fail=1
 test -d $dir && fail=1
 # Make sure they were moved.
-# Since `test -e' is not portable, use `ls'.
-ls $other_partition_tmpdir/$null > /dev/null || fail=1
+test -p $other_partition_tmpdir/$null || fail=1
 test -d $other_partition_tmpdir/$dir/a/b/c || fail=1
 
 # POSIX says rename (A, B) can succeed if A and B are on different file systems,