]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.freopen.ksh
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / cddl / contrib / opensolaris / cmd / dtrace / test / tst / common / funcs / tst.freopen.ksh
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 2006 Sun Microsystems, Inc.  All rights reserved.
24 # Use is subject to license terms.
25 #
26 #ident  "%Z%%M% %I%     %E% SMI"
27
28 script()
29 {
30         $dtrace -wq -o $tmpfile -s /dev/stdin $tmpfile <<EOF
31         BEGIN
32         {
33                 i = 0;
34         }
35
36         tick-10ms
37         {
38                 freopen("%s.%d", \$\$1, i);
39                 printf("%d\n", i)
40         }
41
42         tick-10ms
43         /++i == $iter/
44         {
45                 freopen("");
46                 printf("%d\n", i);
47                 exit(0);
48         }
49 EOF
50 }
51
52 cleanup()
53 {
54         let i=0
55
56         if [ -f $tmpfile ]; then
57                 rm $tmpfile
58         fi
59
60         while [ "$i" -lt "$iter" ]; do
61                 if [ -f $tmpfile.$i ]; then
62                         rm $tmpfile.$i
63                 fi
64                 let i=i+1
65         done
66 }
67
68 if [ $# != 1 ]; then
69         echo expected one argument: '<'dtrace-path'>'
70         exit 2
71 fi
72
73 dtrace=$1
74 tmpfile=/tmp/tst.freopen.$$
75 iter=20
76
77 script
78 status=$?
79
80 let i=0
81
82 if [ -f $tmpfile.$iter ]; then
83         echo "$0: did not expect to find file: $tmpfile.$iter"
84         cleanup
85         exit 100
86 fi
87
88 mv $tmpfile $tmpfile.$iter
89 let iter=iter+1
90
91 while [ "$i" -lt "$iter" ]; do
92         if [ ! -f $tmpfile.$i ]; then
93                 echo "$0: did not find expected file: $tmpfile.$i"
94                 cleanup
95                 exit 101
96         fi
97
98         j=`cat $tmpfile.$i`
99
100         if [ "$i" -ne "$j" ]; then
101                 echo "$0: unexpected contents in $tmpfile.$i: " \
102                     "expected $i, found $j"
103                 cleanup
104                 exit 102
105         fi
106
107         rm $tmpfile.$i
108         let i=i+1
109 done
110
111 exit $status