summaryrefslogtreecommitdiff
path: root/tests/cp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/cp')
-rwxr-xr-xtests/cp/existing-perm-race.sh8
-rwxr-xr-xtests/cp/file-perm-race.sh8
-rwxr-xr-xtests/cp/parent-perm-race.sh7
-rwxr-xr-xtests/cp/sparse-to-pipe.sh7
4 files changed, 19 insertions, 11 deletions
diff --git a/tests/cp/existing-perm-race.sh b/tests/cp/existing-perm-race.sh
index 30cbc6ab6..f48369cd5 100755
--- a/tests/cp/existing-perm-race.sh
+++ b/tests/cp/existing-perm-race.sh
@@ -37,10 +37,12 @@ chgrp $g1 fifo &&
chgrp $g2 fifo-copy &&
chmod g+r fifo-copy || framework-failure
+# Terminate any background cp process
+cleanup_() { kill $pid 2>/dev/null && wait $pid; }
+
# Copy a fifo's contents. That way, we can examine the
# destination permissions before they're finalized.
-cp -p --copy-contents fifo fifo-copy &
-cp_pid=$!
+cp -p --copy-contents fifo fifo-copy & pid=$!
(
# Now 'cp' is reading the fifo. Wait for the destination file to
@@ -77,7 +79,7 @@ case $mode in
*) fail=1;;
esac
-wait $cp_pid || fail=1
+wait $pid || fail=1
# Check that the final mode and group are right.
ls -l -n fifo-copy >ls.out &&
diff --git a/tests/cp/file-perm-race.sh b/tests/cp/file-perm-race.sh
index 5057dae7b..8197962da 100755
--- a/tests/cp/file-perm-race.sh
+++ b/tests/cp/file-perm-race.sh
@@ -25,10 +25,12 @@ require_local_dir_
umask 022
mkfifo_or_skip_ fifo
+# Terminate any background cp process
+cleanup_() { kill $pid 2>/dev/null && wait $pid; }
+
# Copy a fifo's contents. That way, we can examine the
# destination permissions before they're finalized.
-cp -p --copy-contents fifo fifo-copy &
-cp_pid=$!
+cp -p --copy-contents fifo fifo-copy & pid=$!
(
# Now 'cp' is reading the fifo. Wait for the destination file to
@@ -51,6 +53,6 @@ case $(cat ls.out) in
*) fail=1;;
esac
-wait $cp_pid || fail=1
+wait $pid || fail=1
Exit $fail
diff --git a/tests/cp/parent-perm-race.sh b/tests/cp/parent-perm-race.sh
index 7b254b73f..c370f9e06 100755
--- a/tests/cp/parent-perm-race.sh
+++ b/tests/cp/parent-perm-race.sh
@@ -26,6 +26,8 @@ umask 002
mkdir mode ownership d || framework_failure_
chmod g+s d 2>/dev/null # The cp test is valid either way.
+# Terminate any background cp process
+cleanup_() { kill $pid 2>/dev/null && wait $pid; }
for attr in mode ownership
do
@@ -33,8 +35,7 @@ do
# Copy a fifo's contents. That way, we can examine d/$attr's
# state while cp is running.
- cp --preserve=$attr -R --copy-contents --parents $attr d &
- cp_pid=$!
+ cp --preserve=$attr -R --copy-contents --parents $attr d & pid=$!
(
# Now 'cp' is reading the fifo.
@@ -58,7 +59,7 @@ do
fail=1;;
esac
- wait $cp_pid || fail=1
+ wait $pid || fail=1
done
Exit $fail
diff --git a/tests/cp/sparse-to-pipe.sh b/tests/cp/sparse-to-pipe.sh
index 8fc9e09d6..2c3dcefba 100755
--- a/tests/cp/sparse-to-pipe.sh
+++ b/tests/cp/sparse-to-pipe.sh
@@ -21,14 +21,17 @@ print_ver_ cp
require_sparse_support_
+# Terminate any background cp process
+cleanup_() { kill $pid 2>/dev/null && wait $pid; }
+
mkfifo_or_skip_ pipe
-timeout 10 cat pipe > copy &
+timeout 10 cat pipe > copy & pid=$!
truncate -s1M sparse || framework_failure_
cp sparse pipe || fail=1
# Ensure that the cat has completed before comparing.
-wait
+wait $pid
cmp sparse copy || fail=1