Pádraig Brady wrote: > Sergei Steshenko wrote: >> Hello, >> >> I've been running 'make check' on freshly installed SUSE-11.1, and it >> was in VirtualBox. The disk was a VirtualBox one - not a shared folder, and >> it was attached to virtual IDE controller (not SATA). >> >> Screen output of 'make check' is attached, the failure is: >> >> " >> FAIL: ls/readdir-mountpoint-inode (exit: 1) > >> +++ dirname /file_exchange >> ++ parent_dir=/ >> ++ eval 'ls -i ... >> + readdir_inode='?' >> ++ env stat --format=%i /file_exchange >> + stat_inode=0 >> + test '?' = 0 >> + fail=1 > > Thanks for the report. It looks like this test failure was triggered by: > http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commit;h=36edf7ba > > I.E. there is now a mismatch between `ls -i` and `stat --format=%i`, > as ls is now doing extra validation and outputting '?' for invalid inodes, > whereas stat is blindly printing the st_ino.
Thanks for investigating. > Should I convert '?' to '0' in the test? > Should I modify the output from stat to match ls? Maybe neither. The "?" makes me think /file_exchange is a dangling symlink. If that's the case, selecting only directories may be enough: diff --git a/tests/ls/readdir-mountpoint-inode b/tests/ls/readdir-mountpoint-inode index c021473..de563d7 100755 --- a/tests/ls/readdir-mountpoint-inode +++ b/tests/ls/readdir-mountpoint-inode @@ -65,6 +65,8 @@ inode_via_readdir() for dir in $mount_points; do readdir_inode=$(inode_via_readdir $dir) stat_inode=$(env stat --format=%i $dir) + # skip non-directories (i.e., dangling symlinks) + test -d $dir || continue test "$readdir_inode" = "$stat_inode" || fail=1 done If that doesn't do it, then we can skip $dir when stat_inode is 0. Sergei, what do these print for you? env ls -li / |grep file_exchange env ls -lidL /file_exchange
