| #!/bin/sh | |
| # If the test times out, meson sends SIGTERM to this process. | |
| # Simply exec'ing "time" would result in no output from that in this case. | |
| # Instead, we need to run "time" in the background, catch the signals and | |
| # propagate them to the actual test process. | |
| /usr/bin/time -v "$@" & | |
| TIMEPID=$! | |
| TESTPID=$(ps --ppid $TIMEPID -o pid=) | |
| if test "x$TESTPID" != x; then | |
| trap 'kill -TERM $TESTPID; wait $TIMEPID; exit $?' TERM | |
| fi | |
| wait $TIMEPID | |
| exit $? |