diff options
author | Pádraig Brady <P@draigBrady.com> | 2015-05-01 05:26:38 +0100 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2015-05-11 23:02:16 +0100 |
commit | 9069f4ec850364e778c51bfa6f1ab761be67caec (patch) | |
tree | 3a05bcfa1d13c50992281bb786d99e07658f4664 /tests/rm | |
parent | fe02153e6475ae52f90cfccae1d1ba24baf35f9c (diff) | |
download | coreutils-9069f4ec850364e778c51bfa6f1ab761be67caec.tar.xz |
tests: cleanup background processes upon interruption
Reap background processes so that:
- Stray processes aren't left on the system
- Files aren't held open causing deletion issues on NFS
- Partitions used to run the tests from can be unmounted
* tests/tail-2/F-vs-missing.sh: Add the `kill && wait` of the
background $pid(s) to cleanup_().
* tests/tail-2/F-vs-rename.sh: Likewise.
* tests/tail-2/f-vs-rename.sh: Likewise.
* tests/tail-2/append-only.sh: Likewise.
* tests/tail-2/assert-2.sh: Likewise.
* tests/tail-2/assert.sh: Likewise.
* tests/tail-2/flush-initial.sh: Likewise.
* tests/tail-2/inotify-hash-abuse.sh: Likewise.
* tests/tail-2/inotify-hash-abuse2.sh: Likewise.
* tests/tail-2/inotify-race.sh: Likewise.
* tests/tail-2/inotify-rotate-resources.sh: Likewise.
* tests/tail-2/inotify-rotate.sh: Likewise.
* tests/tail-2/pid.sh: Likewise.
* tests/tail-2/pipe-f2.sh: Likewise.
* tests/tail-2/retry.sh: Likewise.
* tests/tail-2/symlink.sh: Likewise.
* tests/tail-2/tail-n0f.sh: Likewise.
* tests/tail-2/wait.sh: Likewise.
* tests/cp/existing-perm-race.sh: Likewise.
* tests/cp/file-perm-race.sh: Likewise.
* tests/cp/parent-perm-race.sh: Likewise.
* tests/cp/sparse-to-pipe.sh: Likewise.
* tests/dd/stats.sh: Likewise.
* tests/du/move-dir-while-traversing.sh: Likewise.
* tests/misc/cat-buf.sh: Likewise.
* tests/misc/help-version.sh: Likewise.
* tests/misc/printf-surprise.sh: Likewise.
* tests/misc/sort-compress-proc.sh: Likewise.
* tests/misc/sort-spinlock-abuse.sh: Likewise.
* tests/misc/stdbuf.sh: Likewise.
* tests/misc/tac-continue.sh: Likewise.
* tests/misc/timeout-group.sh: Likewise.
* tests/mv/i-3.sh: Likewise.
* tests/rm/dangling-symlink.sh: Likewise.
* tests/rm/isatty.sh: Likewise.
* cfg.mk (sc_prohibit_test_background_without_cleanup_):
A new syntax-check to ensure cleanup_() is defined
when background tasks are created in a test.
Diffstat (limited to 'tests/rm')
-rwxr-xr-x | tests/rm/dangling-symlink.sh | 7 | ||||
-rwxr-xr-x | tests/rm/isatty.sh | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/tests/rm/dangling-symlink.sh b/tests/rm/dangling-symlink.sh index 5fb50ecd1..d2e08a8ac 100755 --- a/tests/rm/dangling-symlink.sh +++ b/tests/rm/dangling-symlink.sh @@ -25,9 +25,10 @@ print_ver_ rm ln -s no-file dangle ln -s / symlink +# Terminate any background processes +cleanup_() { kill $pid 2>/dev/null && wait $pid; } -rm ---presume-input-tty dangle symlink & -pid=$! +rm ---presume-input-tty dangle symlink & pid=$! # The buggy rm (fileutils-4.1.9) would hang here, waiting for input. # Wait up to 3.1s for rm to remove the files @@ -40,6 +41,6 @@ check_files_removed() { } retry_delay_ check_files_removed .1 5 || fail=1 -kill $pid > /dev/null 2>&1 +cleanup_ Exit $fail diff --git a/tests/rm/isatty.sh b/tests/rm/isatty.sh index 61148d52d..4eea4432c 100755 --- a/tests/rm/isatty.sh +++ b/tests/rm/isatty.sh @@ -25,10 +25,12 @@ skip_if_root_ ls /dev/stdin >/dev/null 2>&1 \ || skip_ 'there is no /dev/stdin file' +# Terminate any background processes +cleanup_() { kill $pid 2>/dev/null && wait $pid; } + touch f chmod 0 f -rm ---presume-input-tty f > out 2>&1 & -pid=$! +rm ---presume-input-tty f > out 2>&1 & pid=$! # Wait a second, to give a buggy rm (as in fileutils-4.0.40) # enough time to remove the file. @@ -37,7 +39,7 @@ sleep 1 # The file must still exist. test -f f || fail=1 -kill $pid > /dev/null 2>&1 +cleanup_ # Note the trailing 'x' -- so I don't have to have a trailing # blank in this file :-) |