xref: /freebsd-src/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/funcs/tst.freopen.ksh (revision 2be1a816b9ff69588e55be0a84cbe2a31efc0f2f)
1*2be1a816SJohn Birrell#
2*2be1a816SJohn Birrell# CDDL HEADER START
3*2be1a816SJohn Birrell#
4*2be1a816SJohn Birrell# The contents of this file are subject to the terms of the
5*2be1a816SJohn Birrell# Common Development and Distribution License (the "License").
6*2be1a816SJohn Birrell# You may not use this file except in compliance with the License.
7*2be1a816SJohn Birrell#
8*2be1a816SJohn Birrell# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*2be1a816SJohn Birrell# or http://www.opensolaris.org/os/licensing.
10*2be1a816SJohn Birrell# See the License for the specific language governing permissions
11*2be1a816SJohn Birrell# and limitations under the License.
12*2be1a816SJohn Birrell#
13*2be1a816SJohn Birrell# When distributing Covered Code, include this CDDL HEADER in each
14*2be1a816SJohn Birrell# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*2be1a816SJohn Birrell# If applicable, add the following below this CDDL HEADER, with the
16*2be1a816SJohn Birrell# fields enclosed by brackets "[]" replaced with your own identifying
17*2be1a816SJohn Birrell# information: Portions Copyright [yyyy] [name of copyright owner]
18*2be1a816SJohn Birrell#
19*2be1a816SJohn Birrell# CDDL HEADER END
20*2be1a816SJohn Birrell#
21*2be1a816SJohn Birrell
22*2be1a816SJohn Birrell#
23*2be1a816SJohn Birrell# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
24*2be1a816SJohn Birrell# Use is subject to license terms.
25*2be1a816SJohn Birrell#
26*2be1a816SJohn Birrell#ident	"%Z%%M%	%I%	%E% SMI"
27*2be1a816SJohn Birrell
28*2be1a816SJohn Birrellscript()
29*2be1a816SJohn Birrell{
30*2be1a816SJohn Birrell	$dtrace -wq -o $tmpfile -s /dev/stdin $tmpfile <<EOF
31*2be1a816SJohn Birrell	BEGIN
32*2be1a816SJohn Birrell	{
33*2be1a816SJohn Birrell		i = 0;
34*2be1a816SJohn Birrell	}
35*2be1a816SJohn Birrell
36*2be1a816SJohn Birrell	tick-10ms
37*2be1a816SJohn Birrell	{
38*2be1a816SJohn Birrell		freopen("%s.%d", \$\$1, i);
39*2be1a816SJohn Birrell		printf("%d\n", i)
40*2be1a816SJohn Birrell	}
41*2be1a816SJohn Birrell
42*2be1a816SJohn Birrell	tick-10ms
43*2be1a816SJohn Birrell	/++i == $iter/
44*2be1a816SJohn Birrell	{
45*2be1a816SJohn Birrell		freopen("");
46*2be1a816SJohn Birrell		printf("%d\n", i);
47*2be1a816SJohn Birrell		exit(0);
48*2be1a816SJohn Birrell	}
49*2be1a816SJohn BirrellEOF
50*2be1a816SJohn Birrell}
51*2be1a816SJohn Birrell
52*2be1a816SJohn Birrellcleanup()
53*2be1a816SJohn Birrell{
54*2be1a816SJohn Birrell	let i=0
55*2be1a816SJohn Birrell
56*2be1a816SJohn Birrell	if [ -f $tmpfile ]; then
57*2be1a816SJohn Birrell		rm $tmpfile
58*2be1a816SJohn Birrell	fi
59*2be1a816SJohn Birrell
60*2be1a816SJohn Birrell	while [ "$i" -lt "$iter" ]; do
61*2be1a816SJohn Birrell		if [ -f $tmpfile.$i ]; then
62*2be1a816SJohn Birrell			rm $tmpfile.$i
63*2be1a816SJohn Birrell		fi
64*2be1a816SJohn Birrell		let i=i+1
65*2be1a816SJohn Birrell	done
66*2be1a816SJohn Birrell}
67*2be1a816SJohn Birrell
68*2be1a816SJohn Birrellif [ $# != 1 ]; then
69*2be1a816SJohn Birrell	echo expected one argument: '<'dtrace-path'>'
70*2be1a816SJohn Birrell	exit 2
71*2be1a816SJohn Birrellfi
72*2be1a816SJohn Birrell
73*2be1a816SJohn Birrelldtrace=$1
74*2be1a816SJohn Birrelltmpfile=/tmp/tst.freopen.$$
75*2be1a816SJohn Birrelliter=20
76*2be1a816SJohn Birrell
77*2be1a816SJohn Birrellscript
78*2be1a816SJohn Birrellstatus=$?
79*2be1a816SJohn Birrell
80*2be1a816SJohn Birrelllet i=0
81*2be1a816SJohn Birrell
82*2be1a816SJohn Birrellif [ -f $tmpfile.$iter ]; then
83*2be1a816SJohn Birrell	echo "$0: did not expect to find file: $tmpfile.$iter"
84*2be1a816SJohn Birrell	cleanup
85*2be1a816SJohn Birrell	exit 100
86*2be1a816SJohn Birrellfi
87*2be1a816SJohn Birrell
88*2be1a816SJohn Birrellmv $tmpfile $tmpfile.$iter
89*2be1a816SJohn Birrelllet iter=iter+1
90*2be1a816SJohn Birrell
91*2be1a816SJohn Birrellwhile [ "$i" -lt "$iter" ]; do
92*2be1a816SJohn Birrell	if [ ! -f $tmpfile.$i ]; then
93*2be1a816SJohn Birrell		echo "$0: did not find expected file: $tmpfile.$i"
94*2be1a816SJohn Birrell		cleanup
95*2be1a816SJohn Birrell		exit 101
96*2be1a816SJohn Birrell	fi
97*2be1a816SJohn Birrell
98*2be1a816SJohn Birrell	j=`cat $tmpfile.$i`
99*2be1a816SJohn Birrell
100*2be1a816SJohn Birrell	if [ "$i" -ne "$j" ]; then
101*2be1a816SJohn Birrell		echo "$0: unexpected contents in $tmpfile.$i: " \
102*2be1a816SJohn Birrell		    "expected $i, found $j"
103*2be1a816SJohn Birrell		cleanup
104*2be1a816SJohn Birrell		exit 102
105*2be1a816SJohn Birrell	fi
106*2be1a816SJohn Birrell
107*2be1a816SJohn Birrell	rm $tmpfile.$i
108*2be1a816SJohn Birrell	let i=i+1
109*2be1a816SJohn Birrelldone
110*2be1a816SJohn Birrell
111*2be1a816SJohn Birrellexit $status
112