diff options
author | jmmv <jmmv@FreeBSD.org> | 2015-07-04 02:22:26 +0000 |
---|---|---|
committer | jmmv <jmmv@FreeBSD.org> | 2015-07-04 02:22:26 +0000 |
commit | 5c6b494ea7e8f8ed568b19c5254410decebaaaa8 (patch) | |
tree | b7a02f0181be743150435ab4e016e5015bfce11e /tests | |
parent | b42f5bb715542b3013303313cb26b813bdc26101 (diff) | |
download | FreeBSD-src-5c6b494ea7e8f8ed568b19c5254410decebaaaa8.zip FreeBSD-src-5c6b494ea7e8f8ed568b19c5254410decebaaaa8.tar.gz |
Make cleanup routines idempotent
cleanup routines can be executed at any point during the execution of the
body, including even before the body has done any real work. In those
cases, cleanup routines should be careful to not raise spurious errors so
as to not "override" the actual result of the test case.
This is just general good coding style but is not a problem in practice
for these specific tests. (The way I discovered the issue, though, was
due to a regression I introduced in Kyua itself while refactoring some
internals.)
MFC after: 1 week
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/sys/netinet/fibs_test.sh | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/tests/sys/netinet/fibs_test.sh b/tests/sys/netinet/fibs_test.sh index 2dc3169..70b53e8 100755 --- a/tests/sys/netinet/fibs_test.sh +++ b/tests/sys/netinet/fibs_test.sh @@ -98,9 +98,12 @@ arpresolve_checks_interface_fib_body() } arpresolve_checks_interface_fib_cleanup() { - for PID in `cat "processes_to_kill"`; do - kill $PID - done + if [ -f processes_to_kill ]; then + for pid in $(cat processes_to_kill); do + kill "${pid}" + done + rm -f processes_to_kill + fi cleanup_tap } @@ -476,8 +479,10 @@ setup_tap() cleanup_tap() { - for TAPD in `cat "tap_devices_to_cleanup"`; do - ifconfig ${TAPD} destroy - done - rm "tap_devices_to_cleanup" + if [ -f tap_devices_to_cleanup ]; then + for tap_device in $(cat tap_devices_to_cleanup); do + ifconfig "${tap_device}" destroy + done + rm -f tap_devices_to_cleanup + fi } |