xref: /illumos-gate/usr/src/cmd/dtrace/test/tst/common/profile-n/tst.ufunc.ksh (revision 915894ef19890baaed00080f85f6b69e225cda98)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21
22#
23# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
24# Use is subject to license terms.
25#
26
27script()
28{
29	$dtrace -qs /dev/stdin <<EOF
30	profile-1234hz
31	/arg1 != 0/
32	{
33		@[ufunc(arg1)] = count();
34	}
35
36	tick-100ms
37	/i++ == 20/
38	{
39		exit(0);
40	}
41EOF
42}
43
44spinny()
45{
46	while true; do
47		let i=i+1
48	done
49}
50
51if [ $# != 1 ]; then
52	echo expected one argument: '<'dtrace-path'>'
53	exit 2
54fi
55
56dtrace=$1
57
58spinny &
59child=$!
60
61#
62# The only thing we can be sure of here is that we caught some function in
63# ksh doing work.
64#
65script | tee /dev/fd/2 | egrep '(ksh|libshell\.so\.[0-9])`[a-zA-Z_]' > /dev/null
66status=$?
67
68kill $child
69exit $status
70