tst.dtruss.ksh   [plain text]


#!/bin/sh -p

############################################################################
# ASSERTION:
#	To verify that dtruss works in its 3 modes of operation


# Check that dtruss "command" works
dtruss /usr/bin/true 1> /dev/null 2> /dev/null
status=$?
if [ $status -ne 0 ]; then
	exit 1
fi

# Check that dtruss -p "pid" works
dtruss -p 1 1> /dev/null 2> /dev/null &

SUBPID=$!

sleep 2

killall -TERM dtrace
wait $SUBPID
status=$?
if [ $status -ne 0 ]; then
	exit 2
fi

# Check that dtruss -W 'processname' works

(
	while [ 1 -eq 1 ]; do
		/usr/bin/true
		sleep 0.1
	done
) &

LOOPPID=$!

dtruss -W true 1> /dev/null 2> /dev/null
status=$?
kill -TERM $LOOPPID
if [ $status -ne 0 ]; then
	exit 3
fi

exit 0