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