From 33173e867aa45b7f88551551da51e36875582813 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Thu, 6 Sep 2007 23:05:16 +0200 Subject: 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. --- tests/mv/Makefile.am | 2 ++ tests/mv/acl | 55 ++++++++++++++----------------------------------- tests/mv/atomic | 19 +++-------------- tests/mv/backup-dir | 25 +++++----------------- tests/mv/backup-is-src | 31 ++++++++-------------------- tests/mv/childproof | 21 ++++--------------- tests/mv/diag | 25 ++++++---------------- tests/mv/dir-file | 18 ++++------------ tests/mv/dir2dir | 26 +++++------------------ tests/mv/dup-source | 24 ++++----------------- tests/mv/force | 23 +++++++-------------- tests/mv/hard-2 | 27 +++++++----------------- tests/mv/hard-3 | 27 +++++++----------------- tests/mv/hard-4 | 22 ++++---------------- tests/mv/hard-link-1 | 34 +++++++----------------------- tests/mv/hard-verbose | 25 +++++----------------- tests/mv/i-2 | 28 +++++++------------------ tests/mv/i-3 | 21 ++++--------------- tests/mv/i-4 | 23 ++++----------------- tests/mv/i-5 | 22 ++++---------------- tests/mv/i-link-no | 36 +++++++++----------------------- tests/mv/into-self | 24 +++++++-------------- tests/mv/into-self-2 | 32 +++++++--------------------- tests/mv/into-self-3 | 21 ++++++------------- tests/mv/into-self-4 | 21 ++++--------------- tests/mv/leak-fd | 43 +++++++++++--------------------------- tests/mv/mv-special-1 | 46 ++++++++++++++--------------------------- tests/mv/no-target-dir | 22 +++++--------------- tests/mv/part-fail | 29 ++++++-------------------- tests/mv/part-hardlink | 35 ++++++++----------------------- tests/mv/part-rename | 27 +++++------------------- tests/mv/part-symlink | 35 +++++++------------------------ tests/mv/partition-perm | 18 ++++------------ tests/mv/perm-1 | 24 +++++---------------- tests/mv/reply-no | 21 ++++--------------- tests/mv/to-symlink | 27 +++++++----------------- tests/mv/trailing-slash | 27 +++++------------------- tests/mv/update | 21 ++++--------------- tests/other-fs-tmpdir | 4 ++-- 39 files changed, 242 insertions(+), 769 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 . . $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 <&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 < 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 . - - -# 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 < 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 < 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 diff --git a/tests/other-fs-tmpdir b/tests/other-fs-tmpdir index 30a91bc6e..baee6d5db 100755 --- a/tests/other-fs-tmpdir +++ b/tests/other-fs-tmpdir @@ -4,7 +4,7 @@ # of the current directory. If one is found, create a temporary directory # inside it. -# Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. +# Copyright (C) 1998, 1999, 2001, 2002, 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 @@ -53,7 +53,7 @@ Set your environment variable CANDIDATE_TMP_DIRS to make this test use a different list. ************************************** EOF - #' + (exit 77); exit 77 fi test "$VERBOSE" = yes && set -x -- cgit v1.2.3-54-g00ecf