xref: /illumos-gate/usr/src/cmd/dtrace/test/tst/common/profile-n/tst.umod.ksh (revision ed093b41a93e8563e6e1e5dae0768dda2a7bcc27)
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		@[umod(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 ksh is doing some work.
63#
64script | tee /dev/fd/2 | egrep '(ksh|libshell)' > /dev/null
65status=$?
66
67kill $child
68exit $status
69