#!/bin/sh

# Ensure that strace can detach from running processes.

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

run_prog_skip_if_failed \
	kill -0 $$

check_prog sleep

set -e

./set_ptracer_any sh -c "echo > $LOG; while :; do :; done" > /dev/null &

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

tracee_pid=$!

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

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 || {
		cleanup
		dump_log_and_fail_with "$STRACE -p failed to attach"
	}
	$SLEEP_A_BIT
done

kill -INT $!
wait $!

grep -F "Process $tracee_pid detached" "$LOG" > /dev/null || {
		cleanup
		dump_log_and_fail_with "$STRACE -p failed to detach"
	}

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

cleanup
exit 0
