summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtests/cp/backup-134
1 files changed, 23 insertions, 11 deletions
diff --git a/tests/cp/backup-1 b/tests/cp/backup-1
index 9ea2ba9f2..a5bfee603 100755
--- a/tests/cp/backup-1
+++ b/tests/cp/backup-1
@@ -5,24 +5,36 @@ if test "$VERBOSE" = yes; then
cp --version
fi
+pwd=`pwd`
+tmp=`echo "$0"|sed 's,.*/,,'`.tmp
+trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
+trap '(exit $?); exit' 1 2 13 15
+
+framework_failure=0
+mkdir -p $tmp || framework_failure=1
+cd $tmp || framework_failure=1
+
+if test $framework_failure = 1; then
+ echo '$0: failure in testing framework' 1>&2
+ (exit 1); exit
+fi
+
suffix=.b
-tmp=b1.$$
-tmp_backup="$tmp$suffix"
-temp_files="$tmp $tmp_backup"
+file=b1.$$
+file_backup="$file$suffix"
+temp_files="$file $file_backup"
rm -f $temp_files
fail=0
-echo test > $tmp || fail=1
+echo test > $file || fail=1
# Specify both version control and suffix so the environment variables
# (possibly set by the user running these tests) aren't used.
-cp --force --backup=simple --suffix=$suffix $tmp $tmp \
+cp --force --backup=simple --suffix=$suffix $file $file \
|| fail=1
-test -f $tmp || fail=1
-test -f $tmp_backup || fail=1
-cmp $tmp $tmp_backup > /dev/null || fail=1
-
-rm -f $temp_files
+test -f $file || fail=1
+test -f $file_backup || fail=1
+cmp $file $file_backup > /dev/null || fail=1
-exit $fail
+(exit $fail); exit