19512fe85Sahl# 29512fe85Sahl# CDDL HEADER START 39512fe85Sahl# 49512fe85Sahl# The contents of this file are subject to the terms of the 59512fe85Sahl# Common Development and Distribution License (the "License"). 69512fe85Sahl# You may not use this file except in compliance with the License. 79512fe85Sahl# 89512fe85Sahl# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 99512fe85Sahl# or http://www.opensolaris.org/os/licensing. 109512fe85Sahl# See the License for the specific language governing permissions 119512fe85Sahl# and limitations under the License. 129512fe85Sahl# 139512fe85Sahl# When distributing Covered Code, include this CDDL HEADER in each 149512fe85Sahl# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 159512fe85Sahl# If applicable, add the following below this CDDL HEADER, with the 169512fe85Sahl# fields enclosed by brackets "[]" replaced with your own identifying 179512fe85Sahl# information: Portions Copyright [yyyy] [name of copyright owner] 189512fe85Sahl# 199512fe85Sahl# CDDL HEADER END 209512fe85Sahl# 219512fe85Sahl 229512fe85Sahl# 239512fe85Sahl# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 249512fe85Sahl# Use is subject to license terms. 259512fe85Sahl# 269512fe85Sahl#ident "%Z%%M% %I% %E% SMI" 279512fe85Sahl 289512fe85Sahlscript() 299512fe85Sahl{ 309512fe85Sahl $dtrace -wq -o $tmpfile -s /dev/stdin $tmpfile <<EOF 319512fe85Sahl BEGIN 329512fe85Sahl { 339512fe85Sahl i = 0; 349512fe85Sahl } 359512fe85Sahl 369512fe85Sahl tick-10ms 379512fe85Sahl { 389512fe85Sahl freopen("%s.%d", \$\$1, i); 399512fe85Sahl printf("%d\n", i) 409512fe85Sahl } 419512fe85Sahl 429512fe85Sahl tick-10ms 439512fe85Sahl /++i == $iter/ 449512fe85Sahl { 459512fe85Sahl freopen(""); 469512fe85Sahl printf("%d\n", i); 479512fe85Sahl exit(0); 489512fe85Sahl } 499512fe85SahlEOF 509512fe85Sahl} 519512fe85Sahl 529512fe85Sahlcleanup() 539512fe85Sahl{ 549512fe85Sahl let i=0 559512fe85Sahl 569512fe85Sahl if [ -f $tmpfile ]; then 579512fe85Sahl rm $tmpfile 589512fe85Sahl fi 599512fe85Sahl 609512fe85Sahl while [ "$i" -lt "$iter" ]; do 619512fe85Sahl if [ -f $tmpfile.$i ]; then 629512fe85Sahl rm $tmpfile.$i 639512fe85Sahl fi 649512fe85Sahl let i=i+1 659512fe85Sahl done 669512fe85Sahl} 679512fe85Sahl 68*23b5c241Stomeeif [ $# != 1 ]; then 69*23b5c241Stomee echo expected one argument: '<'dtrace-path'>' 70*23b5c241Stomee exit 2 71*23b5c241Stomeefi 72*23b5c241Stomee 73*23b5c241Stomeedtrace=$1 749512fe85Sahltmpfile=/tmp/tst.freopen.$$ 759512fe85Sahliter=20 769512fe85Sahl 779512fe85Sahlscript 789512fe85Sahlstatus=$? 799512fe85Sahl 809512fe85Sahllet i=0 819512fe85Sahl 829512fe85Sahlif [ -f $tmpfile.$iter ]; then 839512fe85Sahl echo "$0: did not expect to find file: $tmpfile.$iter" 849512fe85Sahl cleanup 859512fe85Sahl exit 100 869512fe85Sahlfi 879512fe85Sahl 889512fe85Sahlmv $tmpfile $tmpfile.$iter 899512fe85Sahllet iter=iter+1 909512fe85Sahl 919512fe85Sahlwhile [ "$i" -lt "$iter" ]; do 929512fe85Sahl if [ ! -f $tmpfile.$i ]; then 939512fe85Sahl echo "$0: did not find expected file: $tmpfile.$i" 949512fe85Sahl cleanup 959512fe85Sahl exit 101 969512fe85Sahl fi 979512fe85Sahl 989512fe85Sahl j=`cat $tmpfile.$i` 999512fe85Sahl 1009512fe85Sahl if [ "$i" -ne "$j" ]; then 1019512fe85Sahl echo "$0: unexpected contents in $tmpfile.$i: " \ 1029512fe85Sahl "expected $i, found $j" 1039512fe85Sahl cleanup 1049512fe85Sahl exit 102 1059512fe85Sahl fi 1069512fe85Sahl 1079512fe85Sahl rm $tmpfile.$i 1089512fe85Sahl let i=i+1 1099512fe85Sahldone 1109512fe85Sahl 1119512fe85Sahlexit $status 112