diff options
author | Jim Meyering <jim@meyering.net> | 2007-03-17 11:44:42 +0100 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2007-03-17 11:44:42 +0100 |
commit | 0edae5eee675704e3719c0df0a2e59af817cff85 (patch) | |
tree | 5f8a3463ff2c2ffdcc2b5e300de05fba87ed37c5 /tests/du | |
parent | 11f43d2e22606620149fd66f09b9af601b8b19aa (diff) | |
download | coreutils-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/du')
-rwxr-xr-x | tests/du/basic | 38 |
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 |