Files
third_party_mesa3d/.gitlab-ci/meson/time-strace.sh
Yonggang Luo 201a62cbba meson: Use different STRACEDIR folder for intel_devinfo_override_test
Fixes
--- stderr ---
strace: Can't fopen 'meson-logs/strace/intel_device_info_override_test_120_/log.10613': No such file or directory

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17928>
2022-08-22 14:18:53 +00:00

30 lines
768 B
Bash
Executable File

#!/bin/sh
if [ "x$STRACEDIR" = "x" ]; then
STRACEDIR=meson-logs/strace/$(for i in $@; do basename -z -- $i; echo -n _; done)
fi
mkdir -p $STRACEDIR
# 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 strace -ff -tt -T -o $STRACEDIR/log "$@" &
TIMEPID=$!
STRACEPID=$(ps --ppid $TIMEPID -o pid=)
TESTPID=$(ps --ppid $STRACEPID -o pid=)
if test "x$TESTPID" != x; then
trap 'kill -TERM $TESTPID; wait $TIMEPID; exit $?' TERM
fi
wait $TIMEPID
EXITCODE=$?
# Only keep strace logs if the test timed out
rm -rf $STRACEDIR &
exit $EXITCODE