diff options
Diffstat (limited to 'tests/ls/stat-vs-dirent')
-rwxr-xr-x | tests/ls/stat-vs-dirent | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/tests/ls/stat-vs-dirent b/tests/ls/stat-vs-dirent deleted file mode 100755 index b71d7dd..0000000 --- a/tests/ls/stat-vs-dirent +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh -# Ensure that d_ino (from ls -di) and st_ino (from stat --format=%i) match. - -# Copyright (C) 2006 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. - -if test "$VERBOSE" = yes; then - set -x - ls --version -fi - -. $srcdir/../envvar-check - -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 -trap '(exit $?); exit $?' 1 2 13 15 - -framework_failure=0 -mkdir -p $tmp || framework_failure=1 -cd $tmp || framework_failure=1 - -if test $framework_failure = 1; then - echo "$0: failure in testing framework" 1>&2 - (exit 1); exit 1 -fi - -fail=0 - -root_dev_ino=`stat --format=%d-%i /` -t=`pwd` -while :; do - ls -i1 "$t" > tmp - if test $? = 0; then - # Extract the inode number from the first line of output from ls -i1. - # This value comes from dirent.d_ino, on systems with d_ino support. - d_ino=`sed -n '1s/^ *\([0-9][0-9]*\) .*/\1/p;q' tmp` - - # Extract the name of the corresponding directory entry. - file=`sed -n '1s/^ *[0-9][0-9]* *//p;q' tmp` - - # Get its inode number (stat.st_ino) via stat(1)'s call to lstat. - st_ino=`stat --format=%i "$t/$file"` - - # Make sure that they are the same. - # We know from experience that there may be mismatches on some - # buggy file systems, at mount points. - if test "$d_ino" != "$st_ino"; then - echo "$0: test failed: $t/$file: d_ino($d_ino) != st_ino($st_ino) - This may indicate a flaw in your kernel or file system implementation. - The flaw isn't serious for coreutils, but it might break other tools, - so you should report it to your operating system vendor." 1>&2 - - # This test fails too often, and we don't want to be distracted - # with reports, since the code that could be affected by the losing - # behavior (pwd and getcwd) works around any mismatch. - # So do continue to issue the warning, but don't count it as a - # real failure. - # fail=1 - break - fi - fi - - t=`(cd "$t/.."; pwd)` - dev_ino=`stat --format=%d-%i "$t"` - test $dev_ino = $root_dev_ino && break -done - -(exit $fail); exit $fail |