summaryrefslogtreecommitdiff
path: root/tests/mv
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2007-09-06 23:05:16 +0200
committerJim Meyering <jim@meyering.net>2007-09-15 08:40:38 +0200
commit33173e867aa45b7f88551551da51e36875582813 (patch)
tree8bbe0a98f0b3cbd0977e35b2b0d4f4cc432dc288 /tests/mv
parentdf0beae1eb1318869d51a064aec8fdd401877cbf (diff)
downloadcoreutils-33173e867aa45b7f88551551da51e36875582813.tar.xz
Convert tests/mv, too.
* tests/other-fs-tmpdir: Before, all callers would exit 77 upon failure to find the required dir. Now, exit 77 in this script so callers don't have to. Adjust callers.
Diffstat (limited to 'tests/mv')
-rw-r--r--tests/mv/Makefile.am2
-rwxr-xr-xtests/mv/acl55
-rwxr-xr-xtests/mv/atomic19
-rwxr-xr-xtests/mv/backup-dir25
-rwxr-xr-xtests/mv/backup-is-src31
-rwxr-xr-xtests/mv/childproof21
-rwxr-xr-xtests/mv/diag25
-rwxr-xr-xtests/mv/dir-file18
-rwxr-xr-xtests/mv/dir2dir26
-rwxr-xr-xtests/mv/dup-source24
-rwxr-xr-xtests/mv/force23
-rwxr-xr-xtests/mv/hard-227
-rwxr-xr-xtests/mv/hard-327
-rwxr-xr-xtests/mv/hard-422
-rwxr-xr-xtests/mv/hard-link-134
-rwxr-xr-xtests/mv/hard-verbose25
-rwxr-xr-xtests/mv/i-228
-rwxr-xr-xtests/mv/i-321
-rwxr-xr-xtests/mv/i-423
-rwxr-xr-xtests/mv/i-522
-rwxr-xr-xtests/mv/i-link-no36
-rwxr-xr-xtests/mv/into-self24
-rwxr-xr-xtests/mv/into-self-232
-rwxr-xr-xtests/mv/into-self-321
-rwxr-xr-xtests/mv/into-self-421
-rwxr-xr-xtests/mv/leak-fd43
-rwxr-xr-xtests/mv/mv-special-146
-rwxr-xr-xtests/mv/no-target-dir22
-rwxr-xr-xtests/mv/part-fail29
-rwxr-xr-xtests/mv/part-hardlink35
-rwxr-xr-xtests/mv/part-rename27
-rwxr-xr-xtests/mv/part-symlink35
-rwxr-xr-xtests/mv/partition-perm18
-rwxr-xr-xtests/mv/perm-124
-rwxr-xr-xtests/mv/reply-no21
-rwxr-xr-xtests/mv/to-symlink27
-rwxr-xr-xtests/mv/trailing-slash27
-rwxr-xr-xtests/mv/update21
38 files changed, 240 insertions, 767 deletions
diff --git a/tests/mv/Makefile.am b/tests/mv/Makefile.am
index 9e0b2b8e9..d043c8bad 100644
--- a/tests/mv/Makefile.am
+++ b/tests/mv/Makefile.am
@@ -46,3 +46,5 @@ TESTS_ENVIRONMENT = \
PATH="$(VG_PATH_PREFIX)`pwd`/../../src$(PATH_SEPARATOR)$$PATH" \
CONFIG_HEADER=$(CONFIG_HEADER) \
PROG=mv
+
+include $(top_srcdir)/tests/check.mk
diff --git a/tests/mv/acl b/tests/mv/acl
index f82abda44..0fd1fb3e8 100755
--- a/tests/mv/acl
+++ b/tests/mv/acl
@@ -2,7 +2,7 @@
# move files/directories across file system boundaries
# and make sure acls are preserved
-# 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
@@ -18,9 +18,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
. $srcdir/../acl
-. $srcdir/../other-fs-tmpdir
-# Make sure we get English translations.
-. $srcdir/../lang-default
# Skip this test if cp was built without ACL support:
grep '^#define USE_ACL 0' $CONFIG_HEADER > /dev/null && \
@@ -36,29 +33,14 @@ if test "$VERBOSE" = yes; then
setfacl --version
fi
-if test -z "$other_partition_tmpdir"; then
- (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
-
-t0="$t0 $other_partition_tmpdir"
-
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
-touch file || framework_failure=1
+touch file || framework_failure
t1=$other_partition_tmpdir/t1
-touch $t1 || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- (exit 1); exit 1
-fi
+touch $t1 || framework_failure
skip=no
# Ensure that setfacl and getfacl work on this file system.
@@ -76,28 +58,23 @@ test $skip != no &&
# move the access acl of a file
mv file $other_partition_tmpdir || fail=1
-acl2=`cd $other_partition_tmpdir && getfacl file` || framework_failure=1
+acl2=`cd $other_partition_tmpdir && getfacl file` || framework_failure
test "$acl1" = "$acl2" || fail=1
# move the access acl of a directory
-mkdir dir || framework_failure=1
-setfacl -m user:bin:rw dir || framework_failure=1
-acl1=`getfacl dir` || framework_failure=1
+mkdir dir || framework_failure
+setfacl -m user:bin:rw dir || framework_failure
+acl1=`getfacl dir` || framework_failure
mv dir $other_partition_tmpdir || fail=1
-acl2=`cd $other_partition_tmpdir && getfacl dir` || framework_failure=1
+acl2=`cd $other_partition_tmpdir && getfacl dir` || framework_failure
test "$acl1" = "$acl2" || fail=1
# move the default acl of a directory
-mkdir dir2 || framework_failure=1
-setfacl -d -m user:bin:rw dir2 || framework_failure=1
-acl1=`getfacl dir2` || framework_failure=1
+mkdir dir2 || framework_failure
+setfacl -d -m user:bin:rw dir2 || framework_failure
+acl1=`getfacl dir2` || framework_failure
mv dir2 $other_partition_tmpdir || fail=1
-acl2=`cd $other_partition_tmpdir && getfacl dir2` || framework_failure=1
+acl2=`cd $other_partition_tmpdir && getfacl dir2` || framework_failure
test "$acl1" = "$acl2" || fail=1
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- (exit 1); exit 1
-fi
-
exit $fail
diff --git a/tests/mv/atomic b/tests/mv/atomic
index cf4dea40f..ef30398e7 100755
--- a/tests/mv/atomic
+++ b/tests/mv/atomic
@@ -22,15 +22,7 @@ if test "$VERBOSE" = yes; then
fi
. $srcdir/../strace
-
-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
# Before the fix, mv would unnecessarily unlink the destination symlink:
# $ rm -rf s[12]; ln -s / s1; ln -s /tmp s2; strace -qe unlink /bin/mv -T s1 s2
@@ -40,13 +32,8 @@ cd $tmp || framework_failure=1
# $ rm -rf s[12]; ln -s / s1; ln -s /tmp s2; strace -qe unlink ./mv -T s1 s2
# $
-ln -s t1 s1 || framework_failure=1
-ln -s t2 s2 || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+ln -s t1 s1 || framework_failure
+ln -s t2 s2 || framework_failure
fail=0
diff --git a/tests/mv/backup-dir b/tests/mv/backup-dir
index 8b80bd278..2880cbd30 100755
--- a/tests/mv/backup-dir
+++ b/tests/mv/backup-dir
@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure "mv --verbose --backup" works the same for dirs and non-dirs.
-# 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
@@ -21,25 +21,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $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 A B || framework_failure=1
-touch X Y || 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
+touch X Y || framework_failure
fail=0
@@ -49,7 +35,6 @@ cat <<\EOF > exp || fail=1
`A' -> `B' (backup: `B.~1~')
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/mv/backup-is-src b/tests/mv/backup-is-src
index 8e9bba024..f8be007a8 100755
--- a/tests/mv/backup-is-src
+++ b/tests/mv/backup-is-src
@@ -1,7 +1,7 @@
#!/bin/sh
# Force mv to use the copying code.
-# Copyright (C) 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 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
@@ -21,28 +21,17 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-
-if test -z "$other_partition_tmpdir"; then
- exit 77
-fi
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
a="$other_partition_tmpdir/a"
a2="$other_partition_tmpdir/a~"
-framework_failure=0
-rm -f $a $a2 || framework_failure=1
-echo a > $a || framework_failure=1
-echo a2 > $a2 || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
-
-# Make sure we get English translations.
-. $srcdir/../lang-default
+rm -f $a $a2 || framework_failure
+echo a > $a || framework_failure
+echo a2 > $a2 || framework_failure
# This mv command should exit nonzero.
mv --b=simple $a2 $a > out 2>&1 && fail=1
@@ -57,8 +46,6 @@ cat > exp <<\EOF
XXX: backing up `YYY' would destroy source; `ZZZ' not moved
EOF
-cmp out2 exp || fail=1
-
-rm -fr out out2 exp $a $a2 $other_partition_tmpdir
+compare out2 exp || fail=1
exit $fail
diff --git a/tests/mv/childproof b/tests/mv/childproof
index e35afb6b4..6d93974a4 100755
--- a/tests/mv/childproof
+++ b/tests/mv/childproof
@@ -25,26 +25,13 @@ if test "$VERBOSE" = yes; then
ln --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=childproof.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-mkdir a b c || framework_failure=1
-echo a > a/f || framework_failure=1
-echo b > b/f || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework' 1>&2
- (exit 1); exit 1
-fi
+mkdir a b c || framework_failure
+echo a > a/f || framework_failure
+echo b > b/f || framework_failure
fail=0
diff --git a/tests/mv/diag b/tests/mv/diag
index d611b91c3..d7e70f3d6 100755
--- a/tests/mv/diag
+++ b/tests/mv/diag
@@ -1,7 +1,7 @@
#!/bin/sh
# make sure we get proper diagnostics: e.g., with --target-dir=d but no args
-# Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2000, 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
@@ -23,24 +23,11 @@ fi
# Make sure we get English translations.
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=diag-$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap 'exit $?' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-
-touch f1 || framework_failure=1
-touch f2 || framework_failure=1
-touch d || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+touch f1 || framework_failure
+touch f2 || framework_failure
+touch d || framework_failure
# These mv commands should all exit nonzero.
@@ -62,7 +49,7 @@ mv: target `f1' is not a directory
mv: target `f2' is not a directory
EOF
-cmp out exp || fail=1
+compare out exp || fail=1
(exit $fail)
exit $fail
diff --git a/tests/mv/dir-file b/tests/mv/dir-file
index e9f00eb2f..61b7deaea 100755
--- a/tests/mv/dir-file
+++ b/tests/mv/dir-file
@@ -1,7 +1,7 @@
#!/bin/sh
# mv must fail when src and dest are mismatched directory/non-directory.
-# Copyright (C) 2000, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2000, 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,20 +21,10 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-tmp=mv-mismatch-$$
-pwd=`pwd`
-trap 'cd "$pwd" && rm -rf $tmp' 0 1 2 3 15
+. $srcdir/../test-lib.sh
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp
-mkdir -p dir/file || framework_failure=1
-> file || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+mkdir -p dir/file || framework_failure
+> file || framework_failure
fail=0
diff --git a/tests/mv/dir2dir b/tests/mv/dir2dir
index a98e1070d..41b4c6363 100755
--- a/tests/mv/dir2dir
+++ b/tests/mv/dir2dir
@@ -2,7 +2,7 @@
# Ensure that mv prints the right diagnostic for a dir->dir move
# where the destination directory is not empty.
-# 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,26 +22,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $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/t b/t || framework_failure=1
-touch a/t/f || framework_failure=1
-
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p a/t b/t || framework_failure
+touch a/t/f || framework_failure
fail=0
@@ -58,7 +43,6 @@ cat <<\EOF > exp || fail=1
mv: cannot move `b/t' to `a/t': Directory not empty
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/mv/dup-source b/tests/mv/dup-source
index 28287e965..a851ba8cf 100755
--- a/tests/mv/dup-source
+++ b/tests/mv/dup-source
@@ -4,7 +4,7 @@
# made this fail: cp a a d/
# Ensure that mv fails with a similar command.
-# Copyright (C) 2001, 2002, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 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
@@ -25,23 +25,9 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
-
-pwd=`pwd`
-tmp=dup-src.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $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
@@ -66,8 +52,7 @@ $i: warning: source file \`a' specified more than once
$i: warning: source file \`a' specified more than once
$i: will not overwrite just-created \`d/a' with \`a'
EOF
- cmp out exp || fail=1
- test $fail = 1 && diff out exp 2> /dev/null
+ compare out exp || fail=1
done
for i in mv; do
@@ -81,8 +66,7 @@ for i in mv; do
$i: cannot stat \`a': No such file or directory
$i: cannot stat \`a': No such file or directory
EOF
- cmp out exp || fail=1
- test $fail = 1 && diff out exp 2> /dev/null
+ compare out exp || fail=1
done
(exit $fail); exit $fail
diff --git a/tests/mv/force b/tests/mv/force
index 905f4c071..bc2603ecf 100755
--- a/tests/mv/force
+++ b/tests/mv/force
@@ -1,7 +1,7 @@
#!/bin/sh
# move a file onto itself
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 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
@@ -21,21 +21,14 @@ if test "$VERBOSE" = yes; then
mv --version
fi
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+
ff=mvforce
ff2=mvforce2
-framework_failure=0
-rm -f $ff $ff2 || framework_failure=1
-echo force-contents > $ff || framework_failure=1
-ln $ff $ff2 || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
-
-# Make sure we get English translations.
-. $srcdir/../lang-default
+echo force-contents > $ff || framework_failure
+ln $ff $ff2 || framework_failure
# This mv command should exit nonzero.
mv $ff $ff > out 2>&1 && fail=1
@@ -44,13 +37,11 @@ cat > exp <<EOF
mv: \`$ff' and \`$ff' are the same file
EOF
-cmp out exp || fail=1
+compare out exp || fail=1
test `cat $ff` = force-contents || fail=1
# This should succeed, even though the source and destination
# device and inodes are the same.
mv $ff $ff2 || fail=1
-rm -fr out exp $ff $ff2
-
exit $fail
diff --git a/tests/mv/hard-2 b/tests/mv/hard-2
index eb79377f7..62467e628 100755
--- a/tests/mv/hard-2
+++ b/tests/mv/hard-2
@@ -2,7 +2,7 @@
# Ensure that moving hard-linked arguments onto existing destinations works.
# Likewise when using cp --preserve=link.
-# 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,27 +23,14 @@ if test "$VERBOSE" = yes; then
cp --version
fi
-. $srcdir/../envvar-check
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 dst || framework_failure=1
-(cd dst && touch a b c) || framework_failure=1
-touch a || framework_failure=1
-ln a b || framework_failure=1
-ln a c || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir dst || framework_failure
+(cd dst && touch a b c) || framework_failure
+touch a || framework_failure
+ln a b || framework_failure
+ln a c || framework_failure
fail=0
diff --git a/tests/mv/hard-3 b/tests/mv/hard-3
index f8a48054f..cb02422cd 100755
--- a/tests/mv/hard-3
+++ b/tests/mv/hard-3
@@ -2,7 +2,7 @@
# Ensure that using `cp --preserve=link' to copy hard-linked arguments
# onto existing destinations works, even when one of the link operations fails.
-# Copyright (C) 2003, 2006, 2007 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
@@ -35,28 +35,15 @@ if test "$VERBOSE" = yes; then
cp --version
fi
-. $srcdir/../envvar-check
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 x dst/x || framework_failure=1
-touch dst/x/b || framework_failure=1
+mkdir -p x dst/x || framework_failure
+touch dst/x/b || framework_failure
chmod a-w dst/x
-touch a || framework_failure=1
-ln a x/b || framework_failure=1
-ln a c || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+touch a || framework_failure
+ln a x/b || framework_failure
+ln a c || framework_failure
fail=0
diff --git a/tests/mv/hard-4 b/tests/mv/hard-4
index f4c343fd8..924c002dd 100755
--- a/tests/mv/hard-4
+++ b/tests/mv/hard-4
@@ -1,7 +1,7 @@
#!/bin/sh
# ensure that mv removes a in this case: touch a; ln a b; mv a b
-# 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,9 @@ if test "$VERBOSE" = yes; then
mv --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
-touch a || framework_failure=1
-ln a 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
+touch a || framework_failure
+ln a b || framework_failure
fail=0
diff --git a/tests/mv/hard-link-1 b/tests/mv/hard-link-1
index aaa21a0c2..558cfac04 100755
--- a/tests/mv/hard-link-1
+++ b/tests/mv/hard-link-1
@@ -2,7 +2,7 @@
# move a directory containing hard-linked files and
# make sure the links are preserved
-# Copyright (C) 1998, 1999, 2000, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 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
@@ -22,34 +22,16 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-# Make sure we get English translations.
. $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
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
dir=hlink
-framework_failure=0
-mkdir $dir || framework_failure=1
-> $dir/a || framework_failure=1
-ln $dir/a $dir/b || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- (exit 1); exit 1
-fi
+mkdir $dir || framework_failure
+> $dir/a || framework_failure
+ln $dir/a $dir/b || framework_failure
mv $dir $other_partition_tmpdir || fail=1
@@ -61,6 +43,4 @@ a=`sed -n 's/ a$//p' out`
b=`sed -n 's/ b$//p' out`
test "$a" = "$b" || fail=1
-rm -fr out $dir $other_partition_tmpdir
-
exit $fail
diff --git a/tests/mv/hard-verbose b/tests/mv/hard-verbose
index 0faa7df94..13ca23f16 100755
--- a/tests/mv/hard-verbose
+++ b/tests/mv/hard-verbose
@@ -1,7 +1,7 @@
#!/bin/sh
# ensure that mv's --verbose options works even in this unusual case
-# 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
@@ -21,25 +21,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $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
-
-touch x || framework_failure=1
-ln x y || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+touch x || framework_failure
+ln x y || framework_failure
fail=0
@@ -48,7 +34,6 @@ cat <<\EOF > exp || fail=1
removed `x'
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/mv/i-2 b/tests/mv/i-2
index 9dc1e0e3d..6c654c98f 100755
--- a/tests/mv/i-2
+++ b/tests/mv/i-2
@@ -2,7 +2,7 @@
# Test both cp and mv for their behavior with -if and -fi
# The standards (POSIX and SuS) dictate annoyingly inconsistent behavior.
-# Copyright (C) 2000, 2001, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2001, 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,32 +23,18 @@ if test "$VERBOSE" = yes; then
cp --version
fi
-. $srcdir/../envvar-check
# Make sure we get English translations.
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
-
-pwd=`pwd`
-tmp=cp-mv-if-$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap 'exit $?' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
+. $srcdir/../test-lib.sh
for i in a b c d e f g h; do
- echo $i > $i || framework_failure=1
+ echo $i > $i || framework_failure
done
-chmod 0 b d f h || framework_failure=1
-echo y > y || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+chmod 0 b d f h || framework_failure
+echo y > y || framework_failure
fail=0
mv -if a b || fail=1
@@ -65,11 +51,11 @@ esac
test -f e || fail=1
test -f f || fail=1
-cmp e f || fail=1
+compare e f || fail=1
cp -fi g h < y > out 2>&1 || fail=1
test -f g || fail=1
test -f h || fail=1
-cmp g h || fail=1
+compare g h || fail=1
exit $fail
diff --git a/tests/mv/i-3 b/tests/mv/i-3
index 3d60752bd..8a75de7f2 100755
--- a/tests/mv/i-3
+++ b/tests/mv/i-3
@@ -2,7 +2,7 @@
# Make sure that `mv file unwritable-file' prompts the user
# and that `mv -f file unwritable-file' doesn't.
-# Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 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
@@ -22,25 +22,12 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=mv-i.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-touch f g h i || framework_failure=1
-chmod 0 g i || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework' 1>&2
- (exit 1); exit 1
-fi
+touch f g h i || framework_failure
+chmod 0 g i || framework_failure
fail=0
diff --git a/tests/mv/i-4 b/tests/mv/i-4
index 2bd68161d..288c42830 100755
--- a/tests/mv/i-4
+++ b/tests/mv/i-4
@@ -1,7 +1,7 @@
#!/bin/sh
# make sure `mv -i a b' does its job with a positive response
-# Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 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
@@ -21,28 +21,13 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
-
-pwd=`pwd`
-tmp=mv-i4-$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap 'exit $?' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-
+. $srcdir/../test-lib.sh
for i in a b; do
- echo $i > $i || framework_failure=1
+ echo $i > $i || framework_failure
done
-echo y > y || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+echo y > y || framework_failure
fail=0
mv -i a b < y >/dev/null 2>&1 || fail=1
diff --git a/tests/mv/i-5 b/tests/mv/i-5
index 31d5ae730..e62d08cfa 100755
--- a/tests/mv/i-5
+++ b/tests/mv/i-5
@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure `mv -i dir file' prompts before failing.
-# 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
@@ -21,25 +21,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $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 a || framework_failure=1
-touch b || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+mkdir a || framework_failure
+touch b || framework_failure
fail=0
diff --git a/tests/mv/i-link-no b/tests/mv/i-link-no
index 42320658f..bb6fa44e2 100755
--- a/tests/mv/i-link-no
+++ b/tests/mv/i-link-no
@@ -1,7 +1,7 @@
#!/bin/sh
# Show that mv doesn't preserve links to files the user has declined to move.
-# Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002, 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
@@ -21,28 +21,15 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=i-link-no.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-mkdir a b || framework_failure=1
-echo foo > a/foo || framework_failure=1
-ln a/foo a/bar || framework_failure=1
-echo FUBAR > b/FUBAR || framework_failure=1
-ln b/FUBAR b/bar || framework_failure=1
-chmod a-w b/bar || 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
+echo foo > a/foo || framework_failure
+ln a/foo a/bar || framework_failure
+echo FUBAR > b/FUBAR || framework_failure
+ln b/FUBAR b/bar || framework_failure
+chmod a-w b/bar || framework_failure
fail=0
@@ -54,11 +41,8 @@ cat <<EOF > exp_err
mv: the --reply option is deprecated; use -i or -f instead
EOF
-cmp err exp_err || fail=1
-test $fail = 1 && diff err exp_err 2> /dev/null
-
-cmp out exp || fail=1
-test $fail = 1 && diff out exp 2> /dev/null
+compare err exp_err || fail=1
+compare out exp || fail=1
case "`cat b/foo`" in
foo) ;;
diff --git a/tests/mv/into-self b/tests/mv/into-self
index 46f26ceab..7c2636ee9 100755
--- a/tests/mv/into-self
+++ b/tests/mv/into-self
@@ -1,7 +1,7 @@
#! /bin/sh
# Demonstrate how mv fails when it tries to move a directory into itself.
-# Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 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
@@ -21,25 +21,18 @@ if test "$VERBOSE" = yes; then
mv --version
fi
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+
dir=toself-dir
file=toself-file
-test_failure=0
-
-rm -rf $dir $file || test_failure=1
-mkdir -p $dir/a/b || test_failure=1
-touch $file || test_failure=1
-
-if test $test_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+rm -rf $dir $file || framework_failure
+mkdir -p $dir/a/b || framework_failure
+touch $file || framework_failure
fail=0
-# Make sure we get English translations.
-. $srcdir/../lang-default
-
# This mv command should fail.
mv $dir $file $dir > out 2>&1 && fail=1
@@ -53,7 +46,7 @@ cat > exp <<\EOF
XXX: cannot move `SRC' to a subdirectory of itself, `DEST'
EOF
-cmp out2 exp || fail=1
+compare out2 exp || fail=1
# Make sure the file is gone.
test -f $file && fail=1
@@ -62,6 +55,5 @@ test -d $dir || fail=1
test -d $dir/$dir && fail=1
# Make sure the file has been moved to the right place.
test -f $dir/$file || fail=1
-rm -rf $dir $file out out2 exp
exit $fail
diff --git a/tests/mv/into-self-2 b/tests/mv/into-self-2
index 961d470de..3e92c6404 100755
--- a/tests/mv/into-self-2
+++ b/tests/mv/into-self-2
@@ -3,7 +3,7 @@
# Consider the case where SRC and DEST are on different
# partitions and DEST is a symlink to SRC.
-# Copyright (C) 1998, 1999, 200 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 200, 007 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,33 +23,18 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-
-if test -z "$other_partition_tmpdir"; then
- exit 77
-fi
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
file="$other_partition_tmpdir/file"
symlink=symlink
fail=0
-trap 'rm -fr out out2 exp $file $symlink $other_partition_tmpdir; exit $fail' \
- 0 1 2 3 15
-
-framework_failure=0
-rm -f $file $symlink || framework_failure=1
-echo whatever > $file || framework_failure=1
-ln -s $file $symlink || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
-
-# Make sure we get English translations.
-. $srcdir/../lang-default
+echo whatever > $file || framework_failure
+ln -s $file $symlink || framework_failure
# This mv command should exit nonzero.
mv $symlink $file > out 2>&1 && fail=1
@@ -68,7 +53,6 @@ XXX: `ZZZ' and `YYY' are the same file
EOF
#'
-cmp out2 exp || fail=1
-test $fail = 1 && diff out2 exp 2> /dev/null
+compare out2 exp || fail=1
exit $fail
diff --git a/tests/mv/into-self-3 b/tests/mv/into-self-3
index d97a0fddc..c8b31ff3d 100755
--- a/tests/mv/into-self-3
+++ b/tests/mv/into-self-3
@@ -1,7 +1,7 @@
#!/bin/sh
# move a directory into itself, with a twist
-# Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1998, 1999, 2000, 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,20 +21,13 @@ if test "$VERBOSE" = yes; then
mv --version
fi
+. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+
dir1=is3-dir1
dir2=is3-dir2
-framework_failure=0
-rm -rf $dir1 $dir2 || framework_failure=1
-mkdir $dir1 $dir2 || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
-
-# Make sure we get English translations.
-. $srcdir/../lang-default
+mkdir $dir1 $dir2 || framework_failure
# This mv command should exit nonzero.
mv $dir1 $dir2 $dir2 > out 2>&1 && fail=1
@@ -48,8 +41,6 @@ cat > exp <<\EOF
XXX: cannot move `ZZZ' to a subdirectory of itself, `ZZZ/ZZZ'
EOF
-cmp out2 exp || fail=1
-
-rm -fr out out2 exp $dir1 $dir2
+compare out2 exp || fail=1
exit $fail
diff --git a/tests/mv/into-self-4 b/tests/mv/into-self-4
index 0bd8f931f..c43418a1d 100755
--- a/tests/mv/into-self-4
+++ b/tests/mv/into-self-4
@@ -2,7 +2,7 @@
# confirm that `mv symlink symlink' doesn't remove symlink
# Based on an example from David Luyer.
-# Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 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
@@ -22,23 +22,10 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=mv-slink2.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-touch file || framework_failure=1
-ln -s file s || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework' 1>&2
- (exit 1); exit 1
-fi
+touch file || framework_failure
+ln -s file s || framework_failure
fail=0
diff --git a/tests/mv/leak-fd b/tests/mv/leak-fd
index 394c6c92d..515ad20fb 100755
--- a/tests/mv/leak-fd
+++ b/tests/mv/leak-fd
@@ -2,7 +2,7 @@
# Exercise mv's file-descriptor-leak bug, reported against coreutils-5.2.1
# and fixed (properly) on 2004-10-21.
-# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -16,35 +16,21 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
-# This test is relatively expensive, and might well evoke a
-# framework-failure on systems with a smaller command-line length
# limit so don't run it by default.
-. $srcdir/../expensive
if test "$VERBOSE" = yes; then
set -x
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-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
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
-t0="$t0 $other_partition_tmpdir"
+# This test is relatively expensive, and might well evoke a
+# framework-failure on systems with a smaller command-line length
+. $srcdir/../expensive
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
+PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
b="0 1 2 3 4 5 6 7 8 9
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
@@ -56,16 +42,11 @@ for i in `echo $b`; do
echo $i$j
done
done > .dirs
-mkdir `cat .dirs` || framework_failure=1
+mkdir `cat .dirs` || framework_failure
sed 's,$,/f,' .dirs | xargs touch
last_file=`tail -n1 .dirs`/f
-test -f $last_file || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+test -f $last_file || framework_failure
fail=0
@@ -73,7 +54,7 @@ mv * $other_partition_tmpdir || fail=1
test -f $last_file/f && fail=1
rm .dirs
-ls -A > ../out || fail=1
-test -s ../out && fail=1
+out=$(ls -A) || fail=1
+test -z "$out" || fail=1
(exit $fail); exit $fail
diff --git a/tests/mv/mv-special-1 b/tests/mv/mv-special-1
index cef419503..4d70e592b 100755
--- a/tests/mv/mv-special-1
+++ b/tests/mv/mv-special-1
@@ -1,7 +1,7 @@
#! /bin/sh
# Test "mv" with special files.
-# Copyright (C) 1998, 1999, 2000, 2002, 2004, 2005, 2006 Free Software
+# Copyright (C) 1998, 1999, 2000, 2002, 2004-2007 Free Software
# Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -22,41 +22,25 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-pwd=`pwd`
-tmp=mv-spec.$$
-trap 'status=$?; cd "$pwd" && exec 1>&2; rm -rf $tmp $other_partition_tmpdir && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-# Make sure we get English translations.
. $srcdir/../lang-default
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
null=mv-null
dir=mv-dir
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-rm -f $null || framework_failure=1
-mknod $null p || framework_failure=1
-test -p $null || framework_failure=1
-mkdir -p $dir/a/b/c $dir/d/e/f || framework_failure=1
-touch $dir/a/b/c/file1 $dir/d/e/f/file2 || framework_failure=1
+rm -f $null || framework_failure
+mknod $null p || framework_failure
+test -p $null || framework_failure
+mkdir -p $dir/a/b/c $dir/d/e/f || framework_failure
+touch $dir/a/b/c/file1 $dir/d/e/f/file2 || framework_failure
-if test $framework_failure = 1; then
- echo '********************************************'
- echo 'NOTICE: unable to create test prerequisites'
- echo '********************************************'
- # exit 77 here to indicate that we couldn't run the test.
- # At least running on SunOS 4.1.4, using a directory NFS mounted
- # from an OpenBSD system, the above mknod fails.
- (exit 77); exit 77
-fi
+# We used to...
+# exit 77 here to indicate that we couldn't run the test.
+# At least running on SunOS 4.1.4, using a directory NFS mounted
+# from an OpenBSD system, the above mknod fails.
+# It's not worth making an exception any more.
fail=0
mv --verbose $null $dir $other_partition_tmpdir > out || fail=1
@@ -87,7 +71,7 @@ cat <<EOF | sort > exp
\`$dir/d/e/f/file2' -> \`XXX/$dir/d/e/f/file2'
EOF
-cmp out2 exp || fail=1
+compare out2 exp || fail=1
# cd $other_partition_tmpdir
# ls -l -A -R $other_partition_tmpdir
diff --git a/tests/mv/no-target-dir b/tests/mv/no-target-dir
index 84b30b4b0..7f3a926a5 100755
--- a/tests/mv/no-target-dir
+++ b/tests/mv/no-target-dir
@@ -2,7 +2,7 @@
# ensure that --no-target-directory (-T) works when the destination is
# an empty directory.
-# 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,24 +22,13 @@ if test "$VERBOSE" = yes; then
mv --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 -p d/sub empty src d2/sub e2 || framework_failure=1
-touch f || framework_failure=1
+mkdir -p d/sub empty src d2/sub e2 || framework_failure
+touch f || framework_failure
# Skip this test if there's an underlying kernel bug.
-mkdir a b b/a || 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 b/a || framework_failure
mv a b || {
echo "$0: skipping this test: your kernel's rename syscall is buggy" 1>&2
@@ -58,7 +47,6 @@ ls -d d > /dev/null 2>&1 && fail=1
# Ensure that the dest dir now has a subdirectory.
test -d empty/sub || fail=1
-
# rename must fail, since the dest is non-empty.
mv -fT src d2 2> /dev/null && fail=1
diff --git a/tests/mv/part-fail b/tests/mv/part-fail
index 2be0018df..1a43bafcd 100755
--- a/tests/mv/part-fail
+++ b/tests/mv/part-fail
@@ -4,7 +4,7 @@
# This is a bit fragile since it relies on the string used
# for EPERM: `permission denied'.
-# Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002, 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
@@ -24,31 +24,14 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
. $srcdir/../lang-default
PRIV_CHECK_ARG=require-non-root . $srcdir/../priv-check
+. $srcdir/../test-lib.sh
+cleanup_() { t=$other_partition_tmpdir; chmod -R 700 "$t"; rm -rf "$t"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
-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
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
-t0="$t0 $other_partition_tmpdir"
-
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-touch k $other_partition_tmpdir/k || framework_failure=1
-chmod u-w $other_partition_tmpdir || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+touch k $other_partition_tmpdir/k || framework_failure
+chmod u-w $other_partition_tmpdir || framework_failure
fail=0
diff --git a/tests/mv/part-hardlink b/tests/mv/part-hardlink
index ff17e91c3..859cab09e 100755
--- a/tests/mv/part-hardlink
+++ b/tests/mv/part-hardlink
@@ -4,7 +4,7 @@
# For additional constraints, see the comment in copy.c.
# Before coreutils-5.2.1, this test would fail.
-# Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -24,32 +24,15 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
-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
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
-t0="$t0 $other_partition_tmpdir"
-
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-touch f || framework_failure=1
-ln f g || framework_failure=1
-mkdir a b || framework_failure=1
-touch a/1 || framework_failure=1
-ln a/1 b/1 || 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
+ln f g || framework_failure
+mkdir a b || framework_failure
+touch a/1 || framework_failure
+ln a/1 b/1 || framework_failure
fail=0
diff --git a/tests/mv/part-rename b/tests/mv/part-rename
index b3fbfba6b..2c6035950 100755
--- a/tests/mv/part-rename
+++ b/tests/mv/part-rename
@@ -3,7 +3,7 @@
# another, and giving it a different name at the destination would cause mv
# to get a failed assertion.
-# Copyright (C) 2000, 2002, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2000, 2002, 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
@@ -23,28 +23,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
-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
-
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
-t0="$t0 $other_partition_tmpdir"
-
-framework_failure=0
-mkdir -p $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-mkdir foo || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir foo || framework_failure
fail=0
diff --git a/tests/mv/part-symlink b/tests/mv/part-symlink
index 64d531dab..1b586668d 100755
--- a/tests/mv/part-symlink
+++ b/tests/mv/part-symlink
@@ -2,7 +2,7 @@
# make sure cp and mv can handle many combinations of local and
# other-partition regular/symlink'd files.
-# Copyright (C) 2000, 2003, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2000, 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
@@ -23,35 +23,17 @@ if test "$VERBOSE" = yes; then
cp --version
fi
-pwd=`pwd`
-tmp=part-sl.$$
-trap 'status=$?; cd "$pwd" && exec 1>&2; rm -rf $tmp $other_partition_tmpdir && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-pwd_tmp=$pwd/$tmp
-
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-# Make sure the programs use C-locale formats/translations.
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
+
+pwd_tmp=`pwd`
# Unset CDPATH. Otherwise, output from the `cd dir' command
# can make this test fail.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-if test -z "$other_partition_tmpdir"; then
- (exit 77); exit 77
-fi
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
-
fail=0
# Four cases:
@@ -220,8 +202,7 @@ cat <<\EOF > $expected
EOF
-# Some folks may don't have diff.
-cmp $expected $actual \
- || { diff -c $expected $actual 1>&2; fail=1; }
+# Redirect to stderr, since stdout is already
+compare $expected $actual || fail=1
(exit $fail); exit $fail
diff --git a/tests/mv/partition-perm b/tests/mv/partition-perm
index 2cb84c55b..7c7849947 100755
--- a/tests/mv/partition-perm
+++ b/tests/mv/partition-perm
@@ -1,7 +1,7 @@
#!/bin/sh
# Make sure permissions are preserved when moving from one partition to another.
-# Copyright (C) 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 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,11 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
-if test -z "$other_partition_tmpdir"; then
- exit 77
-fi
-
-pwd=`pwd`
-dir=p-perm-$$
-trap 'cd "$pwd" && rm -rf $dir $other_partition_tmpdir' 0 1 2 3 15
-
-mkdir $dir
-
-cd $dir
: > file
chmod a=rwx file
diff --git a/tests/mv/perm-1 b/tests/mv/perm-1
index 792a91429..af859197c 100755
--- a/tests/mv/perm-1
+++ b/tests/mv/perm-1
@@ -2,7 +2,7 @@
# ensure that mv gives one diagnostic, not two, when failing
# due to lack of permissions
-# Copyright (C) 2002, 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2002, 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
@@ -22,25 +22,12 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $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 no-write/dir || framework_failure=1
-chmod u-w no-write || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+mkdir -p no-write/dir || framework_failure
+chmod u-w no-write || framework_failure
fail=0
@@ -49,7 +36,6 @@ cat <<\EOF > exp
mv: cannot move `no-write/dir' to `./dir': 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/mv/reply-no b/tests/mv/reply-no
index 37541c1c0..baa2f3e5d 100755
--- a/tests/mv/reply-no
+++ b/tests/mv/reply-no
@@ -1,7 +1,7 @@
#!/bin/sh
# Ensure that `mv --reply=no f1 f2' works.
-# 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
@@ -22,21 +22,9 @@ if test "$VERBOSE" = yes; then
fi
. $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
-touch a b || framework_failure=1
-
-if test $framework_failure = 1; then
- echo "$0: failure in testing framework" 1>&2
- (exit 1); exit 1
-fi
+touch a b || framework_failure
fail=0
@@ -50,7 +38,6 @@ cat <<EOF > exp_err
mv: the --reply option is deprecated; use -i or -f instead
EOF
-cmp out exp_err || fail=1
-test $fail = 1 && diff out exp_err 2> /dev/null
+compare out exp_err || fail=1
(exit $fail); exit $fail
diff --git a/tests/mv/to-symlink b/tests/mv/to-symlink
index 04b7a8d30..0b25ff92c 100755
--- a/tests/mv/to-symlink
+++ b/tests/mv/to-symlink
@@ -2,7 +2,7 @@
# Make sure that the copying code used in an inter-partition
# move unlinks a destination symlink before opening it.
-# Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 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,12 +22,9 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../other-fs-tmpdir
-. $srcdir/../envvar-check
-
-if test -z "$other_partition_tmpdir"; then
- exit 77
-fi
+. $srcdir/../test-lib.sh
+cleanup_() { rm -rf "$other_partition_tmpdir"; }
+. "$abs_top_srcdir/tests/other-fs-tmpdir"
rem_file="$other_partition_tmpdir/file"
rem_symlink="$other_partition_tmpdir/symlink"
@@ -35,18 +32,10 @@ file=to-sym-$$
fail=0
-trap 'rm -fr $file $other_partition_tmpdir; exit $fail' 0 1 2 3 15
-
-framework_failure=0
-rm -f $file || framework_failure=1
-echo local > $file || framework_failure=1
-echo remote > $rem_file || framework_failure=1
-ln -s $rem_file $rem_symlink || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework'
- exit 1
-fi
+rm -f $file || framework_failure
+echo local > $file || framework_failure
+echo remote > $rem_file || framework_failure
+ln -s $rem_file $rem_symlink || framework_failure
# This mv command should succeed, unlinking the symlink
# before copying.
diff --git a/tests/mv/trailing-slash b/tests/mv/trailing-slash
index 7d78a81e6..e20d180d6 100755
--- a/tests/mv/trailing-slash
+++ b/tests/mv/trailing-slash
@@ -4,7 +4,7 @@
# Also, ensure that "mv dir non-exist-dir/" works.
# Also, ensure that "cp dir non-exist-dir/" works.
-# Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+# Copyright (C) 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
@@ -24,22 +24,9 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-pwd=`pwd`
-tmp=mv-tslash.$$
-trap 'status=$?; cd "$pwd" && exec 1>&2; rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
+. $srcdir/../test-lib.sh
-. $srcdir/../envvar-check
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-mkdir foo || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework' 1>&2
- exit 1
-fi
+mkdir foo || framework_failure
fail=0
@@ -48,12 +35,8 @@ mv foo/ bar || fail=1
# mv and cp would misbehave for coreutils versions [5.3.0..5.97], 6.0 and 6.1
for cmd in mv 'cp -r'; do
for opt in '' -T -u; do
- rm -rf d e || framework_failure=1
- mkdir d || framework_failure=1
- if test $framework_failure = 1; then
- echo 'failure in testing framework'
- (exit 1); exit 1
- fi
+ rm -rf d e || framework_failure
+ mkdir d || framework_failure
$cmd $opt d e/ || fail=1
if test "$cmd" = mv; then
diff --git a/tests/mv/update b/tests/mv/update
index 1bd48da3f..15c922c06 100755
--- a/tests/mv/update
+++ b/tests/mv/update
@@ -22,25 +22,12 @@ if test "$VERBOSE" = yes; then
mv --version
fi
-. $srcdir/../envvar-check
. $srcdir/../lang-default
+. $srcdir/../test-lib.sh
-pwd=`pwd`
-tmp=mv-update.$$
-trap 'status=$?; cd "$pwd" && rm -rf $tmp && exit $status' 0
-trap '(exit $?); exit' 1 2 13 15
-
-framework_failure=0
-mkdir $tmp || framework_failure=1
-cd $tmp || framework_failure=1
-echo old > old || framework_failure=1
-touch -d yesterday old || framework_failure=1
-echo new > new || framework_failure=1
-
-if test $framework_failure = 1; then
- echo 'failure in testing framework' 1>&2
- (exit 1); exit 1
-fi
+echo old > old || framework_failure
+touch -d yesterday old || framework_failure
+echo new > new || framework_failure
fail=0