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
This commit is contained in:
Julio Merino 2015-07-04 02:22:26 +00:00
parent a1c0309edc
commit 8e79f15196

View File

@ -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
}