Subject: bug#6547: closed (Re: bug#6547: GNU coreutils 8.5 "make check" => tests/test-suite.log 8 of 365 tests failed)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 06 Sep 2010 21:59:02 +0000

Your bug report

#6547: GNU coreutils 8.5 "make check" => tests/test-suite.log 8 of 365 tests failed

which was filed against the coreutils package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
6547: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6547
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#6547: GNU coreutils 8.5 "make check" => tests/test-suite.log 8 of 365 tests failed
From: Pádraig Brady <[email-masked]>
To: Jim Meyering <[email-masked]>
Cc: [email-masked]
Date: Mon, 06 Sep 2010 22:59:05 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

On 02/09/10 13:50, Jim Meyering wrote:

> Thanks!  That looks right.
> However at least 3 more tests can use one of the new functions
> in place of existing df --local uses:
> (yeah, depending on your font size, "..." without the quotes,
> can be almost invisible)

I'll apply the attached in the morning sometime.

>   tests/ls/readdir-mountpoint-inode

About that one actually. I think it only uses --local
to minimise the chances of the subsequent stat hanging?
If that's the case I can remove the --local and use
`timeout 1 stat ...`

cheers,
Pádraig.
commit cd6327820a75f6073830468f56ca652ba7e9152a
Author: Pádraig Brady <[email-masked]>
Date:   Thu Sep 2 13:22:41 2010 +0100

    tests: exclude some tests when running on NFS
    
    All tests currently pass on NFS on Linux kernel 2.6.22 at least,
    but some fail on 2.6.9, so we exclude those here.
    
    * tests/init.cfg (is_local_dir_): A new function
    returning if the current directory is on a local file system.
    (require_local_dir_): A new function to skip tests
    if not on a local dir.
    * tests/cp/existing-perm-race: Skip if non local.
    * tests/cp/file-perm-race: Likewise.
    * tests/cp/parent-perm: Likewise.
    * tests/cp/parent-perm-race: Likewise.
    * tests/cp/preserve-2: Likewise.
    * tests/mv/part-symlink: Likewise.
    * tests/du/basic: Use refactored function.
    * tests/install/basic-1: Likewise.
    * tests/mkdir/p-3: Likewise.
    * tests/dd/skip-seek-past-dev: Likewise.
    * tests/du/slink: Likewise.  Remove redundant test
    for NFS file system.
    * tests/misc/join: s/local/locale/.

diff --git a/tests/cp/existing-perm-race b/tests/cp/existing-perm-race
index b6168f6..ffd29f0 100755
--- a/tests/cp/existing-perm-race
+++ b/tests/cp/existing-perm-race
@@ -22,8 +22,12 @@ if test "$VERBOSE" = yes; then
 fi
 
 . $srcdir/test-lib.sh
+
 require_membership_in_two_groups_
 
+# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least
+require_local_dir_
+
 set _ $groups; shift
 g1=$1
 g2=$2
diff --git a/tests/cp/file-perm-race b/tests/cp/file-perm-race
index ca47169..d807612 100755
--- a/tests/cp/file-perm-race
+++ b/tests/cp/file-perm-race
@@ -23,6 +23,9 @@ fi
 
 . $srcdir/test-lib.sh
 
+# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least
+require_local_dir_
+
 umask 022
 mkfifo fifo ||
   skip_test_ "fifos not supported"
diff --git a/tests/cp/parent-perm b/tests/cp/parent-perm
index 4912694..4a7d989 100755
--- a/tests/cp/parent-perm
+++ b/tests/cp/parent-perm
@@ -24,6 +24,8 @@ fi
 . $srcdir/test-lib.sh
 
 working_umask_or_skip_
+# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least
+require_local_dir_
 
 mkdir -p a/b/c a/b/d e || framework_failure
 touch a/b/c/foo a/b/d/foo || framework_failure
diff --git a/tests/cp/parent-perm-race b/tests/cp/parent-perm-race
index 5461238..e595d9e 100755
--- a/tests/cp/parent-perm-race
+++ b/tests/cp/parent-perm-race
@@ -23,6 +23,9 @@ fi
 
 . $srcdir/test-lib.sh
 
+# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least
+require_local_dir_
+
 umask 002
 mkdir mode ownership d || framework_failure
 chmod g+s d 2>/dev/null # The cp test is valid either way.
diff --git a/tests/cp/preserve-2 b/tests/cp/preserve-2
index f65b420..9863952 100755
--- a/tests/cp/preserve-2
+++ b/tests/cp/preserve-2
@@ -23,8 +23,10 @@ fi
 
 . $srcdir/test-lib.sh
 
-touch f || framework_failure
+# cp -p gives ENOTSUP on NFS on Linux 2.6.9 at least
+require_local_dir_
 
+touch f || framework_failure
 
 cp --preserve=mode,links f g || fail=1
 
diff --git a/tests/dd/skip-seek-past-dev b/tests/dd/skip-seek-past-dev
index c5b7aab..9e910e8 100755
--- a/tests/dd/skip-seek-past-dev
+++ b/tests/dd/skip-seek-past-dev
@@ -23,9 +23,10 @@ fi
 
 . $srcdir/test-lib.sh
 
-# need write access to device
+# need write access to local device
 # (even though we don't actually write anything)
 require_root_
+require_local_dir_
 
 get_device_size() {
   BLOCKDEV=blockdev
@@ -36,8 +37,7 @@ get_device_size() {
 
 # Get path to device the current dir is on.
 # Note df can only get fs size, not device size.
-device=$(df -P --local . | tail -n1 | cut -d' ' -f1) ||
-  skip_test_ 'this test runs only on local file systems'
+device=$(df -P . | tail -n1 | cut -d' ' -f1) || framework_failure
 
 dev_size=$(get_device_size "$device") ||
   skip_test_ "failed to determine size of $device"
diff --git a/tests/du/basic b/tests/du/basic
index 8b72853..02deb1d 100755
--- a/tests/du/basic
+++ b/tests/du/basic
@@ -63,7 +63,7 @@ compare out exp || fail=1
 
 # Perform this test only if "." is on a local file system.
 # Otherwise, it would fail e.g., on an NFS-mounted Solaris ZFS file system.
-if df --local . >/dev/null 2>&1; then
+if is_local_dir_; then
   rm -f out exp
   du --block-size=$B -a d | sort -r -k2,2 > out || fail=1
   echo === >> out
diff --git a/tests/du/slink b/tests/du/slink
index 2bb3757..5c2b125 100755
--- a/tests/du/slink
+++ b/tests/du/slink
@@ -24,14 +24,9 @@ fi
 . $srcdir/test-lib.sh
 
 # Determine if `.' is on a local (would non-NFS be sufficient?) file system.
-# On at least some NFS implementations, symlinks never take up space,
-
-# So if this is a non-local file system, skip the test.
-if df --local . >/dev/null 2>&1; then
-  : # Ok.
-else
-  skip_test_ "\`.' is on a non-local file system"
-fi
+# At least on OSF/1 4.0d, when using an nfsv3 file system,
+# each created symlink can end up having a size of 0.
+require_local_dir_
 
 if df --type=xfs . >/dev/null 2>&1; then
   # At least on Irix-6.5.19, when using an xfs file system,
@@ -39,12 +34,6 @@ if df --type=xfs . >/dev/null 2>&1; then
   skip_test_ "\`.' is on an XFS file system"
 fi
 
-if df --type=nfsv3 . >/dev/null 2>&1; then
-  # At least on OSF/1 4.0d, when using an nfsv3 file system,
-  # each created symlink can end up having a size of 0.
-  skip_test_ "\`.' is on an NFS file system"
-fi
-
 symlink_name_lengths='1 15 16 31 32 59 60 63 64 127 128 255 256 511 512 1024'
 for len in $symlink_name_lengths; do
   name=`seq 1 $len|tr -c x y |head -c$len`
diff --git a/tests/init.cfg b/tests/init.cfg
index 232cb9b..ab18eb1 100644
--- a/tests/init.cfg
+++ b/tests/init.cfg
@@ -56,6 +56,17 @@ require_acl_()
     || skip_test_ "This test requires a local user named bin."
 }
 
+is_local_dir_()
+{
+  df --local . >/dev/null 2>&1
+}
+
+require_local_dir_()
+{
+  is_local_dir ||
+    skip_test_ "This test requires a local file system."
+}
+
 # Skip this test if we're not in SELinux "enforcing" mode.
 require_selinux_enforcing_()
 {
diff --git a/tests/install/basic-1 b/tests/install/basic-1
index 80c72d9..1af2b09 100755
--- a/tests/install/basic-1
+++ b/tests/install/basic-1
@@ -105,7 +105,7 @@ test -d xx/rel && fail=1
 # inaccessible parent.  coreutils 5.97 fails this test.
 # Perform this test only if "." is on a local file system.
 # Otherwise, it would fail e.g., on an NFS-mounted file system.
-if df --local . >/dev/null 2>&1; then
+if is_local_dir_; then
   mkdir -p sub1/d || fail=1
   (cd sub1/d && chmod a-r . && chmod a-rx .. &&
    ginstall -d "$iwd/xx/zz" rel/a rel/b) || fail=1
diff --git a/tests/misc/join b/tests/misc/join
index 0e34ba8..a319b94 100755
--- a/tests/misc/join
+++ b/tests/misc/join
@@ -135,7 +135,7 @@ my @tv = (
 
 # From Paul Eggert: fixed in 1.22n (this would fail on Solaris7,
 # with LC_ALL set to en_US).
-# Unfortunately, that Solaris7's en_US local folds case (making
+# Unfortunately, that Solaris7's en_US locale folds case (making
 # the first input file sorted) is not portable, so this test would
 # fail on e.g. Linux systems, because the input to join isn't sorted.
 # ['lc-collate', '', ["a 1a\nB 1B\n", "B 2B\n"], "B 1B 2B\n", 0],
diff --git a/tests/mkdir/p-3 b/tests/mkdir/p-3
index 6aa422a..945dcec 100755
--- a/tests/mkdir/p-3
+++ b/tests/mkdir/p-3
@@ -42,7 +42,7 @@ test -d "$p/b/b" && test -d "$p/z" || fail=1
 # whose parent is inaccessible.  coreutils 5.97 fails this test.
 # Perform this test only if "." is on a local file system.
 # Otherwise, it would fail e.g., on an NFS-mounted file system.
-if df --local . >/dev/null 2>&1; then
+if is_local_dir_; then
   (cd no-acce3s/d && chmod a-r . && chmod a-rx .. &&
       mkdir -p a/b "$p/b/c" d/e && test -d a/b && test -d d/e) || fail=1
   test -d "$p/b/c" || fail=1
diff --git a/tests/mv/part-symlink b/tests/mv/part-symlink
index 00c706b..3b8e442 100755
--- a/tests/mv/part-symlink
+++ b/tests/mv/part-symlink
@@ -27,6 +27,10 @@ fi
 cleanup_() { rm -rf "$other_partition_tmpdir"; }
 . "$abs_srcdir/other-fs-tmpdir"
 
+# On NFS on Linux 2.6.9 at least we get:
+# mv: preserving permissions for `rem_sl': Operation not supported
+require_local_dir_
+
 pwd_tmp=`pwd`
 
 # Unset CDPATH.  Otherwise, output from the `cd dir' command

Subject: GNU coreutils 8.5 "make check" => tests/test-suite.log 8 of 365 tests failed
From: "Jost, Martin (NSN - DE/Munich)" <[email-masked]>
To: <[email-masked]>
Date: Thu, 1 Jul 2010 16:16:57 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

I build coreutils 8.5. on:
Linux xxx 2.6.9-89.0.23.ELsmp #1 SMP Fri Mar 5 17:56:21 EST 2010 i686
i686 i386 GNU/Linux

Using
> gcc --version
gcc (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3)

(Ok, probably there are other tools, that might be relevant... :-(

I didn't use any configure-options, beside --prefix=...

The testsuite reported "8 of 365 tests failed" and asked, to report it.

=============================================
   GNU coreutils 8.5: tests/test-suite.log   
=============================================

8 of 365 tests failed.  (54 tests were not run).  

=============================================

Here is /test-suite.log, stripped down to just the failed test:
 <<test-suiteSTRIPPED.log>> 
Regards

Martin