summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/du/2g21
-rwxr-xr-xtests/du/8gb21
-rwxr-xr-xtests/du/basic25
-rwxr-xr-xtests/du/deref23
-rwxr-xr-xtests/du/deref-args28
-rwxr-xr-xtests/du/exclude22
-rwxr-xr-xtests/du/fd-leak18
-rwxr-xr-xtests/du/files0-from1
-rwxr-xr-xtests/du/hard-link21
-rwxr-xr-xtests/du/inacc-dest40
-rwxr-xr-xtests/du/inacc-dir23
-rwxr-xr-xtests/du/inaccessible-cwd25
-rwxr-xr-xtests/du/long-from-unreadable36
-rwxr-xr-xtests/du/long-sloop24
-rwxr-xr-xtests/du/no-deref24
-rwxr-xr-xtests/du/no-x21
-rwxr-xr-xtests/du/one-file-system22
-rwxr-xr-xtests/du/restore-wd17
-rwxr-xr-xtests/du/slash21
-rwxr-xr-xtests/du/slink14
-rwxr-xr-xtests/du/trailing-slash24
-rwxr-xr-xtests/du/two-args30
22 files changed, 108 insertions, 393 deletions
diff --git a/tests/du/2g b/tests/du/2g
index 2ab923732..ea2d6c784 100755
--- a/tests/du/2g
+++ b/tests/du/2g
@@ -3,7 +3,7 @@
# Before coreutils-5.93, on systems with a signed, 32-bit stat.st_blocks
# one of du's computations would overflow.
-# Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2005-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
@@ -23,24 +23,10 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
-
# Creating a 2GB file counts as `very expensive'.
. $srcdir/../very-expensive
-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
+. $srcdir/../test-lib.sh
fail=0
@@ -85,7 +71,6 @@ cat <<\EOF > exp || fail=1
~2M
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/8gb b/tests/du/8gb
index d585f70b5..29d48c2e0 100755
--- a/tests/du/8gb
+++ b/tests/du/8gb
@@ -2,7 +2,7 @@
# Ensure that du does not rely on narrow types like size_t for
# file sizes or sums.
-# Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2005-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
@@ -22,22 +22,8 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
. $srcdir/../sparse-file
-
-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
+. $srcdir/../test-lib.sh
dd bs=1 seek=8G of=big < /dev/null 2> /dev/null
if test $? != 0; then
@@ -69,7 +55,6 @@ cat <<\EOF > exp
8589934592 big
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/basic b/tests/du/basic
index d8d8486a6..b7bfa3a58 100755
--- a/tests/du/basic
+++ b/tests/du/basic
@@ -22,31 +22,18 @@ if test "$VERBOSE" = yes; then
fi
# DU_BLOCK_SIZE could cause problems
-. $srcdir/../envvar-check
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
-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
-mkdir -p a/b d d/sub || framework_failure=1
+mkdir -p a/b d d/sub || framework_failure
# Ensure that these files contain more than 64 bytes, so that we don't
# immediately disqualify file systems (e.g., NetApp) on which smaller
# files take up zero disk blocks.
-printf '%*s' 257 make-sure-the-file-is-non-empty > a/b/F || framework_failure=1
+printf '%*s' 257 make-sure-the-file-is-non-empty > a/b/F || framework_failure
printf %4096s x > d/1
cp d/1 d/sub/2
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
-
fail=0
B=`stat --format=%B a/b/F`
@@ -75,8 +62,7 @@ $a a # size of dir entry, a
$tot a
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff -u out exp 2> /dev/null
+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.
@@ -104,8 +90,7 @@ $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
+ compare out exp || fail=1
fi
(exit $fail); exit $fail
diff --git a/tests/du/deref b/tests/du/deref
index f5adcd756..63cd606b2 100755
--- a/tests/du/deref
+++ b/tests/du/deref
@@ -2,7 +2,7 @@
# prior to coreutils-4.5.3, du -D didn't work in some cases
# Based on an example from Andreas Schwab and/or Michal Svec.
-# Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002, 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
@@ -22,22 +22,11 @@ if test "$VERBOSE" = yes; then
du --version
fi
-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
-mkdir -p a/sub || framework_failure=1
-ln -s a/sub slink || framework_failure=1
-touch b || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+. $srcdir/../test-lib.sh
+
+mkdir -p a/sub || framework_failure
+ln -s a/sub slink || framework_failure
+touch b || framework_failure
fail=0
diff --git a/tests/du/deref-args b/tests/du/deref-args
index 01b7b83e7..441b21dd7 100755
--- a/tests/du/deref-args
+++ b/tests/du/deref-args
@@ -2,7 +2,7 @@
# Ensure that --dereference-args (-D) gives reasonable names.
# This test would fail for coreutils-5.0.91.
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -22,25 +22,12 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p dir/a
-ln -s dir slink
-printf %65536s x > 64k
-ln -s 64k slink-to-64k
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p dir/a || framework_failure
+ln -s dir slink || framework_failure
+printf %65536s x > 64k || framework_failure
+ln -s 64k slink-to-64k || framework_failure
fail=0
@@ -61,7 +48,6 @@ slink/
64 slink-to-64k
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/exclude b/tests/du/exclude
index d426400ed..7e4805157 100755
--- a/tests/du/exclude
+++ b/tests/du/exclude
@@ -1,7 +1,7 @@
#!/bin/sh
# make sure du's --exclude option works
-# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003-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
@@ -21,22 +21,9 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p a/b/c a/x/y a/u/v
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p a/b/c a/x/y a/u/v || framework_failure
fail=0
@@ -71,7 +58,6 @@ a/x
a/x/y
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/fd-leak b/tests/du/fd-leak
index 6b25b8608..bc2ea81bf 100755
--- a/tests/du/fd-leak
+++ b/tests/du/fd-leak
@@ -1,7 +1,7 @@
#!/bin/sh
# check for file descriptor leak
-# 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
@@ -24,15 +24,8 @@ fi
# Call this an expensive test. It's not that expensive, but command line
# limitations might induce failure on some losing systems.
. $srcdir/../expensive
+. $srcdir/../test-lib.sh
-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
# Create 1296 (36^2) files.
# Their names and separating spaces take up 3887 bytes.
x='a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9'
@@ -44,12 +37,7 @@ for i in $x; do
done
# This may fail due to command line limitations.
-touch $f || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+touch $f || framework_failure
fail=0
diff --git a/tests/du/files0-from b/tests/du/files0-from
index 7f32f318f..cb82daea2 100755
--- a/tests/du/files0-from
+++ b/tests/du/files0-from
@@ -20,7 +20,6 @@
: ${PERL=perl}
: ${srcdir=.}
-. $srcdir/../envvar-check
$PERL -e 1 > /dev/null 2>&1 || {
echo 1>&2 "$0: configure didn't find a usable version of Perl," \
diff --git a/tests/du/hard-link b/tests/du/hard-link
index e1c8a11d3..139bae2ec 100755
--- a/tests/du/hard-link
+++ b/tests/du/hard-link
@@ -3,7 +3,7 @@
# Likewise for excluded directories.
# Ensure that hard links _are_ listed twice when using --count-links.
-# 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
@@ -23,26 +23,12 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
-
-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
+. $srcdir/../test-lib.sh
mkdir -p dir/sub
( cd dir && { echo non-empty > f1; ln f1 f2; echo non-empty > sub/F; } )
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
-
fail=0
# Note that for this first test, we transform f1 or f2
@@ -63,7 +49,6 @@ dir/f1
dir
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff -u out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/inacc-dest b/tests/du/inacc-dest
index af28fcc04..cd2e1e828 100755
--- a/tests/du/inacc-dest
+++ b/tests/du/inacc-dest
@@ -22,29 +22,14 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-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
+. $srcdir/../test-lib.sh
mkdir f && cd f && mkdir a b c d e && touch c/j && chmod a-x c \
- || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+ || framework_failure
fail=0
-
du > ../t 2>&1 && fail=1
# Accept either of the following outputs.
@@ -64,19 +49,14 @@ cat <<\EOF > exp || fail=1
du: cannot read directory `./c': Permission denied
EOF
-cat <<\EOF > exp2 || fail=1
-.
-./a
-./b
-./c
-./d
-./e
-du: cannot access `./c/j': Permission denied
-EOF
+# Map a diagnostic like this
+# du: cannot access `./c/j': Permission denied
+# to this:
+# du: cannot access `./c': Permission denied
+# And accept "cannot read directory" in place of "cannot access"
+sed "s,/c/j': ,/c': ," out > t && mv t out
+sed 's,cannot access,cannot read directory,' out > t && mv t out
-cmp out exp > /dev/null 2>&1 || {
- cmp out exp2 || fail=1
- }
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/inacc-dir b/tests/du/inacc-dir
index add929347..1ee5943b4 100755
--- a/tests/du/inacc-dir
+++ b/tests/du/inacc-dir
@@ -20,20 +20,9 @@ if test "$VERBOSE" = yes; then
du --version
fi
-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
-mkdir -p a/sub || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+. $srcdir/../test-lib.sh
+
+mkdir -p a/sub || framework_failure
fail=0
@@ -42,8 +31,7 @@ chmod 0 a/sub || fail=1
# Expect failure, ignore diagnostics.
du -s a > out 2> /dev/null && fail=1
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
# Same as above, but don't use -s, so we print
# an entry for the unreadable "sub", too.
@@ -53,7 +41,6 @@ chmod 0 a/sub || fail=1
# Expect failure, ignore diagnostics.
du -k a > out 2> /dev/null && fail=1
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/inaccessible-cwd b/tests/du/inaccessible-cwd
index c5aaabe40..6706c19aa 100755
--- a/tests/du/inaccessible-cwd
+++ b/tests/du/inaccessible-cwd
@@ -2,7 +2,7 @@
# Ensure that even when run from an inaccessible directory, du can still
# operate on accessible directories elsewhere.
-# 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
@@ -26,26 +26,15 @@ if test "$VERBOSE" = yes; then
fi
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p no-x a/b || framework_failure=1
-cd no-x || framework_failure=1
-chmod 0 . || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+cwd=`pwd`
+mkdir -p no-x a/b || framework_failure
+cd no-x || framework_failure
+chmod 0 . || framework_failure
fail=0
-du "$pwd/$tmp/a" > /dev/null || fail=1
+du "$cwd/a" > /dev/null || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/long-from-unreadable b/tests/du/long-from-unreadable
index 9718b2bd2..64c35b9a5 100755
--- a/tests/du/long-from-unreadable
+++ b/tests/du/long-from-unreadable
@@ -1,7 +1,7 @@
#!/bin/sh
# Show fts fails on old-fashioned systems.
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -33,7 +33,7 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
proc_file=/proc/self/fd
if test ! -d $proc_file; then
@@ -44,44 +44,32 @@ EOF
(exit 77); exit 77
fi
-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
-
dir=`printf '%200s\n' ' '|tr ' ' x`
# Construct a hierarchy containing a relative file with a name
# longer than PATH_MAX.
# for i in `seq 52`; do
-# mkdir $dir || framework_failure=1
-# cd $dir || framework_failure=1
+# mkdir $dir || framework_failure
+# cd $dir || framework_failure
# done
-# cd $tmp || framework_failure=1
+# cd $tmp || framework_failure
# Sheesh. Bash 3.1.5 can't create this hierarchy. I get
# cd: error retrieving current directory: getcwd: cannot access parent directories:
+
+cwd=`pwd`
# Use perl instead:
: ${PERL=perl}
$PERL \
-e 'my $d = '$dir'; foreach my $i (1..52)' \
-e ' { mkdir ($d, 0700) && chdir $d or die "$!" }' \
- || framework_failure=1
+ || framework_failure
-mkdir inaccessible || framework_failure=1
-cd inaccessible || framework_failure=1
-chmod 0 . || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir inaccessible || framework_failure
+cd inaccessible || framework_failure
+chmod 0 . || framework_failure
fail=0
-du -s "$pwd/$tmp/$dir" > /dev/null || fail=1
+du -s "$cwd/$dir" > /dev/null || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/long-sloop b/tests/du/long-sloop
index 4f538d067..f6adf7238 100755
--- a/tests/du/long-sloop
+++ b/tests/du/long-sloop
@@ -3,7 +3,7 @@
# Show that du fails with ELOOP (Too many levels of symbolic links)
# when it encounters that condition.
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -24,15 +24,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../lang-default
-
-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
+. $srcdir/../test-lib.sh
# Create lots of directories, each containing a single symlink
# pointing at the next directory in the list.
@@ -43,25 +35,20 @@ cd $tmp || framework_failure=1
n=400
dir_list=`seq $n`
-mkdir $dir_list || framework_failure=1
+mkdir $dir_list || framework_failure
file=1
i_minus_1=0
for i in $dir_list `expr $n + 1`; do
case $i_minus_1 in
0) ;;
*)
- ln -s ../$i $i_minus_1/s || framework_failure=1
+ ln -s ../$i $i_minus_1/s || framework_failure
file=$file/s;;
esac
i_minus_1=$i
done
echo foo > $i
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
-
# If a system can handle this many symlinks in a file name,
# just skip this test.
@@ -91,7 +78,6 @@ sed "s, .1/s/s/s/[/s]*',," out1 > out || fail=1
echo "du: cannot access: $too_many" > exp || fail=1
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/no-deref b/tests/du/no-deref
index ec3c6e1f9..cd76b557f 100755
--- a/tests/du/no-deref
+++ b/tests/du/no-deref
@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that by default, du doesn't dereference command-line symlinks.
-# Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 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
@@ -21,23 +21,10 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p dir/a/b
-ln -s dir slink
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p dir/a/b || framework_failure
+ln -s dir slink || framework_failure
fail=0
@@ -46,7 +33,6 @@ cat <<\EOF > exp
slink
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/no-x b/tests/du/no-x
index 45cdb0d12..630ca17a3 100755
--- a/tests/du/no-x
+++ b/tests/du/no-x
@@ -24,22 +24,10 @@ fi
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p d/no-x/y || framework_failure=1
-chmod u=rw d/no-x || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p d/no-x/y || framework_failure
+chmod u=rw d/no-x || framework_failure
fail=0
@@ -62,7 +50,6 @@ cat <<EOF > exp
$prog: \`d/no-x': Permission denied
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/one-file-system b/tests/du/one-file-system
index 07e6e9577..244887152 100755
--- a/tests/du/one-file-system
+++ b/tests/du/one-file-system
@@ -2,7 +2,7 @@
# Test for a bug in fts's handling of FTS_XDEV, the flag behind
# du's --one-file-system (-x) option.
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -22,22 +22,9 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p b/c y/z || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p b/c y/z || framework_failure
fail=0
@@ -53,7 +40,6 @@ y/z
y
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/restore-wd b/tests/du/restore-wd
index e9fcfa197..e868bf85c 100755
--- a/tests/du/restore-wd
+++ b/tests/du/restore-wd
@@ -2,7 +2,7 @@
# due to a bug in glibc's ftw.c, in some cases, nftw w/FTW_CHDIR
# would not restore the working directory.
-# 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
@@ -22,20 +22,9 @@ if test "$VERBOSE" = yes; then
du --version
fi
-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
+. $srcdir/../test-lib.sh
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-mkdir a b || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir a b || framework_failure
fail=0
diff --git a/tests/du/slash b/tests/du/slash
index c0c66672b..dd9175112 100755
--- a/tests/du/slash
+++ b/tests/du/slash
@@ -1,7 +1,7 @@
#!/bin/sh
# `du /' would omit the `/' on the last line.
-# Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 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
@@ -21,21 +21,7 @@ if test "$VERBOSE" = yes; then
du --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
+. $srcdir/../test-lib.sh
fail=0
@@ -46,7 +32,6 @@ cat <<\EOF > exp
/
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/slink b/tests/du/slink
index 5913d8371..e9f7bbd7d 100755
--- a/tests/du/slink
+++ b/tests/du/slink
@@ -21,14 +21,7 @@ if test "$VERBOSE" = yes; then
du --version
fi
-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
+. $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,
@@ -55,11 +48,6 @@ if df --type=nfsv3 . >/dev/null 2>&1; then
(exit 77); exit 77
fi
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
-
fail=0
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
diff --git a/tests/du/trailing-slash b/tests/du/trailing-slash
index 6918f255a..80ce5ba8d 100755
--- a/tests/du/trailing-slash
+++ b/tests/du/trailing-slash
@@ -2,7 +2,7 @@
# Ensure that du works properly for an argument that refers to a
# symbolic link, and that is specified with a trailing slash.
-# Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002-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
@@ -24,23 +24,10 @@ if test "$VERBOSE" = yes; then
du --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-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
-mkdir -p dir/1/2 || framework_failure=1
-ln -s dir slink || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p dir/1/2 || framework_failure
+ln -s dir slink || framework_failure
fail=0
@@ -60,7 +47,6 @@ slink/1
slink
EOF
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare out exp || fail=1
(exit $fail); exit $fail
diff --git a/tests/du/two-args b/tests/du/two-args
index aa3975e10..a9a3e75b0 100755
--- a/tests/du/two-args
+++ b/tests/du/two-args
@@ -2,7 +2,7 @@
# Make sure `du d/1 d/2' works.
# That command failed with du from fileutils-4.0q.
-# Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2004-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
@@ -22,28 +22,18 @@ if test "$VERBOSE" = yes; then
du --version
fi
-pwd=`pwd`
-tmp=du2-$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
+. $srcdir/../test-lib.sh
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
+t=t
+mkdir -p $t/1 $t/2 || framework_failure
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- (exit 1); exit 1
-fi
-
-mkdir -p $tmp/1 $tmp/2
-
-test -d $tmp || fail=1
-du $tmp/1 $tmp/2 > /dev/null || fail=1
+fail=0
+test -d $t || fail=1
+du $t/1 $t/2 > /dev/null || fail=1
-# Make sure `du . $tmp' and `du .. $tmp' work.
+# Make sure `du . $t' and `du .. $t' work.
# These would fail prior to fileutils-4.0y.
-du . $tmp > /dev/null || fail=1
-du .. $tmp > /dev/null || fail=1
+du . $t > /dev/null || fail=1
+du .. $t > /dev/null || fail=1
(exit $fail); exit $fail