#!/bin/sh

# Ensure that strace can detach from stopped processes.

. "${srcdir=.}/init.sh"

check_prog sleep
check_prog grep

set -e

rm -f $LOG
./set_ptracer_any sleep $((2*$TIMEOUT_DURATION)) > $LOG &

while ! [ -s $LOG ]; do
	kill -0 $! 2> /dev/null ||
		fail_ 'set_ptracer_any sleep failed'
	$SLEEP_A_BIT
done

tracee_pid=$!
kill -STOP $tracee_pid

cleanup()
{
	set +e
	kill $tracee_pid
	kill -CONT $tracee_pid
	wait $tracee_pid 2> /dev/null
}

rm -f $LOG
$STRACE -p $tracee_pid 2> $LOG &

while ! grep -F "Process $tracee_pid attached" $LOG > /dev/null; do
	kill -0 $! 2> /dev/null ||
		{ cat $LOG; cleanup; fail_ 'strace -p does not work'; }
	$SLEEP_A_BIT
done

while ! grep -F -e '--- stopped by ' $LOG > /dev/null; do
	kill -0 $! 2> /dev/null ||
		{ cat $LOG; cleanup; fail_ 'strace -p does not work'; }
	$SLEEP_A_BIT
done

kill -INT $!
wait $!

grep -F "Process $tracee_pid detached" $LOG > /dev/null ||
	{ cat $LOG; cleanup; fail_ 'strace -p failed to detach'; }

if [ -f /proc/self/status ]; then
	$SLEEP_A_BIT
	test -d /proc/$tracee_pid ||
		{ cat $LOG; cleanup; fail_ 'tracee died after detach'; }
	grep '^State:.*T (stopped)' < /proc/$tracee_pid/status > /dev/null || {
		cat $LOG
		grep '^State:' < /proc/$tracee_pid/status
		cleanup
		fail_ 'tracee is not group-stopped after detach'
	}
fi

cleanup
exit 0
