dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / cmd / dtrace / test / tst / common / ustack / tst.depth.ksh
blob26cff421aa598ada33cb69dd4bab6cd1e38205ce
2 # CDDL HEADER START
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.
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.
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]
19 # CDDL HEADER END
23 # Copyright 2006 Sun Microsystems, Inc. All rights reserved.
24 # Use is subject to license terms.
26 #ident "%Z%%M% %I% %E% SMI"
28 if [ $# != 1 ]; then
29 echo expected one argument: '<'dtrace-path'>'
30 exit 2
33 file=out.$$
34 dtrace=$1
36 rm -f $file
38 $dtrace -o $file -c date -s /dev/stdin <<EOF
40 #pragma D option quiet
41 #pragma D option bufsize=1M
42 #pragma D option bufpolicy=fill
44 pid\$target:::entry,
45 pid\$target:::return,
46 pid\$target:a.out::,
47 syscall:::return,
48 profile:::profile-997
49 /pid == \$target/
51 printf("START %s:%s:%s:%s\n",
52 probeprov, probemod, probefunc, probename);
53 trace(ustackdepth);
54 ustack(100);
55 trace("END\n");
58 tick-1sec
59 /n++ == 10/
61 trace("test timed out...");
62 exit(1);
64 EOF
66 status=$?
67 if [ "$status" -ne 0 ]; then
68 echo $tst: dtrace failed
69 exit $status
72 perl /dev/stdin $file <<EOF
73 while (<>) {
74 chomp;
76 last if /^\$/;
78 die "expected START at \$.\n" unless /^START/;
80 \$_ = <>;
81 chomp;
82 die "expected depth (\$_) at \$.\n" unless /^(\d+)\$/;
83 \$depth = \$1;
85 for (\$i = 0; \$i < \$depth; \$i++) {
86 \$_ = <>;
87 chomp;
88 die "unexpected END at \$.\n" if /^END/;
91 \$_ = <>;
92 chomp;
93 die "expected END at \$.\n" unless /^END\$/;
95 EOF
97 status=$?
99 count=`wc -l $file | cut -f1 -do`
100 if [ "$count" -lt 1000 ]; then
101 echo $tst: output was too short
102 status=1
106 if [ "$status" -eq 0 ]; then
107 rm -f $file
110 exit $status