summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-03-17 11:44:42 +0100
committerJim Meyering <jim@meyering.net>2007-03-17 11:44:42 +0100
commit0edae5eee675704e3719c0df0a2e59af817cff85 (patch)
tree5f8a3463ff2c2ffdcc2b5e300de05fba87ed37c5 /tests
parent11f43d2e22606620149fd66f09b9af601b8b19aa (diff)
downloadcoreutils-0edae5eee675704e3719c0df0a2e59af817cff85.tar.xz
Avoid test failure on NFS-mounted Solaris ZFS file system.
* tests/du/basic: Skip a test if "." is on a non-local file system.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/du/basic38
1 files changed, 21 insertions, 17 deletions
diff --git a/tests/du/basic b/tests/du/basic
index d03ce0c16..665a416c8 100755
--- a/tests/du/basic
+++ b/tests/du/basic
@@ -1,7 +1,7 @@
#!/bin/sh
# Compare actual numbers from du, assuming block size matches mine.
-# Copyright (C) 2003, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2007 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
@@ -80,20 +80,23 @@ EOF
cmp out exp || fail=1
test $fail = 1 && diff -u out exp 2> /dev/null
-rm -f out exp
-du --block-size=$B -a d | sort -r -k2,2 > out || fail=1
-echo === >> out
-du --block-size=$B -S d | sort -r -k2,2 >> out || fail=1
-
-t2=`stat --format=%b d/sub/2`
-ts=`stat --format=%b d/sub`
-t1=`stat --format=%b d/1`
-td=`stat --format=%b d`
-tot=`expr $t1 + $t2 + $ts + $td`
-d1=`expr $td + $t1`
-s2=`expr $ts + $t2`
-
-cat <<EOF | sed 's/ *#.*//' > exp
+# 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
+ rm -f out exp
+ du --block-size=$B -a d | sort -r -k2,2 > out || fail=1
+ echo === >> out
+ du --block-size=$B -S d | sort -r -k2,2 >> out || fail=1
+
+ t2=`stat --format=%b d/sub/2`
+ ts=`stat --format=%b d/sub`
+ t1=`stat --format=%b d/1`
+ td=`stat --format=%b d`
+ tot=`expr $t1 + $t2 + $ts + $td`
+ d1=`expr $td + $t1`
+ s2=`expr $ts + $t2`
+
+ cat <<EOF | sed 's/ *#.*//' > exp
$t2 d/sub/2
$s2 d/sub
$t1 d/1
@@ -103,7 +106,8 @@ $s2 d/sub
$d1 d # d + d/1; don't count the dir. entry for d/sub
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+ cmp out exp || fail=1
+ test $fail = 1 && diff out exp 2> /dev/null
+fi
(exit $fail); exit $fail