Invoke EXIT handler early when using Valgrind.
When using Valgrind, we need to wait for all invoked programs to complete before checking their valgrind logs. Some tests, notably agent-restrict, set an EXIT trap handler to clean up things like ssh-agent, but those do not get invoked until test-exec.sh exits. This causes the Valgrind wait to deadlock, so if present invoke the EXIT handler before checking the Valgrind logs.
This commit is contained in:
parent
ad2e0580c8
commit
20da6ed136
|
@ -718,6 +718,19 @@ start_sshd ()
|
|||
cleanup
|
||||
|
||||
if [ "x$USE_VALGRIND" != "x" ]; then
|
||||
# If there is an EXIT trap handler, invoke it now.
|
||||
# Some tests set these to clean up processes such as ssh-agent. We
|
||||
# need to wait for all valgrind processes to complete so we can check
|
||||
# their logs, but since the EXIT traps are not invoked until
|
||||
# test-exec.sh exits, waiting here will deadlock.
|
||||
# This is not very portable but then neither is valgrind itself.
|
||||
exithandler=$(trap -p | awk -F "'" '/EXIT$/{print $2}')
|
||||
if [ "x${exithandler}" != "x" ]; then
|
||||
verbose invoking EXIT trap handler early: ${exithandler}
|
||||
${exithandler}
|
||||
trap '' EXIT
|
||||
fi
|
||||
|
||||
# wait for any running process to complete
|
||||
wait; sleep 1
|
||||
VG_RESULTS=$(find $OBJ/valgrind-out -type f -print)
|
||||
|
|
Loading…
Reference in New Issue