From: Dmitry V. Levin Date: Tue, 10 May 2016 09:29:11 +0000 (+0000) Subject: strace-ff.test: fix race condition X-Git-Tag: v4.12~196 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=26b2cfeb6ba7f922ae756b4f525bf07afb6fb29a;p=strace strace-ff.test: fix race condition * tests/strace-ff.test: Wait for completion of PR_SET_PTRACER command. --- diff --git a/tests/strace-ff.test b/tests/strace-ff.test index d1e06344..2ce06f19 100755 --- a/tests/strace-ff.test +++ b/tests/strace-ff.test @@ -4,18 +4,26 @@ . "${srcdir=.}/init.sh" -rm -f "$LOG".* +run_prog_skip_if_failed \ + kill -0 $$ + +./set_ptracer_any ./sleep 1 > "$OUT" & +tracee_pid=$! -./set_ptracer_any ./sleep 1 > /dev/null & -PID=$! -run_strace -a14 -eexit_group -ff -p $PID +while ! [ -s "$OUT" ]; do + kill -0 $tracee_pid 2> /dev/null || + fail_ 'set_ptracer_any sleep failed' +done + +rm -f "$LOG".* +run_strace -a14 -eexit_group -ff -p $tracee_pid # check that output matches -match_diff "$LOG.$PID" +match_diff "$LOG.$tracee_pid" # check that no other output files have been created set -- "$LOG".* -[ "$LOG.$PID" = "$*" ] || +[ "$LOG.$tracee_pid" = "$*" ] || fail_ "too many output files: $*" -rm -f "$LOG.$PID" +rm -f "$OUT" "$LOG.$tracee_pid"