1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-02-18 13:21:58 +02:00

* tests/ls/stat-dtype: Use a dynamic test to decide whether the

current file system has useful d_type info.
This commit is contained in:
Paul Eggert
2006-10-05 22:10:08 +00:00
parent 1fa3b50140
commit 08984eef49
2 changed files with 14 additions and 27 deletions

View File

@@ -1,5 +1,8 @@
2006-10-05 Paul Eggert <eggert@cs.ucla.edu>
* tests/ls/stat-dtype: Use a dynamic test to decide whether the
current file system has useful d_type info.
* src/dd.c (flags): noatime and nofollow now depend on
HAVE_WORKING_O_NOATIME and HAVE_WORKING_O_NOFOLLOW, too.
(usage): Output info about noatime and nofollow only if

View File

@@ -30,33 +30,6 @@ fi
. $srcdir/../envvar-check
# Skip this test unless "." is on a file system with useful d_type info.
# FIXME: use a more dynamic test for this, since whether d_type is useful
# depends on much more than the file system type. For example, with
# linux-2.6.15, at least tmpfs and ext3 work, but reiserfs and xfs don't.
# Also, tmpfs on Solaris 10 lacks d_type support.
skip=yes
fs_type=`stat -f --printf %T .`
linux_2_6_or_newer=0
case `uname -r` in
[01].*) ;;
2.[0-5]*) ;;
*) linux_2_6_or_newer=1 ;;
esac
test `uname -s` = Linux \
&& test $linux_2_6_or_newer = 1 \
&& test $fs_type = tmpfs \
&& skip=no
test $fs_type = ext2/ext3 && skip=no
test $skip = yes &&
{
echo "$0: '.' is not on a suitable file system for this test" 1>&2
echo "$0: skipping this test" 1>&2
(exit 77); exit 77
}
pwd=`pwd`
t0=`echo "$0"|sed 's,.*/,,'`.tmp; tmp=$t0/$$
trap 'status=$?; cd $pwd; chmod -R u+rwx $t0; rm -rf $t0 && exit $status' 0
@@ -66,6 +39,17 @@ framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1
# Skip this test unless "." is on a file system with useful d_type info.
# FIXME: This uses "ls -p" to decide whether to test "ls" with other options,
# but if ls's d_type code is buggy then "ls -p" might be buggy too.
mkdir -p c/d || framework_failure=1
chmod a-x c || framework_failure=1
if test "X`ls -p c 2>&1`" != Xd/; then
echo "$0: '.' is not on a suitable file system for this test" 1>&2
echo "$0: skipping this test" 1>&2
(exit 77); exit 77
fi
mkdir d || framework_failure=1
ln -s / d/s || framework_failure=1
chmod 600 d || framework_failure=1