]> granicus.if.org Git - strace/commitdiff
strace-ff.test: fix race condition
authorDmitry V. Levin <ldv@altlinux.org>
Tue, 10 May 2016 09:29:11 +0000 (09:29 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 10 May 2016 09:51:04 +0000 (09:51 +0000)
* tests/strace-ff.test: Wait for completion of PR_SET_PTRACER command.

tests/strace-ff.test

index d1e06344ef2c763282c90c8bd09366d0a0e81ab2..2ce06f19dbc2db33326e9e5dcbf890320ded11f2 100755 (executable)
@@ -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"