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 289512fe85Sahl# 299512fe85Sahl# This script attempts to tease out a race when probes are initially enabled. 309512fe85Sahl# 319512fe85Sahlscript() 329512fe85Sahl{ 339512fe85Sahl # 349512fe85Sahl # Nauseatingly, the #defines below must be in the 0th column to 359512fe85Sahl # satisfy the ancient cpp that -C defaults to. 369512fe85Sahl # 37*23b5c241Stomee $dtrace -C -s /dev/stdin <<EOF 389512fe85Sahl#define PROF1 profile:::profile-4000hz 399512fe85Sahl#define PROF4 PROF1, PROF1, PROF1, PROF1 409512fe85Sahl#define PROF16 PROF4, PROF4, PROF4, PROF4 419512fe85Sahl#define PROF64 PROF16, PROF16, PROF16, PROF16 429512fe85Sahl#define PROF256 PROF64, PROF64, PROF64, PROF64 439512fe85Sahl#define PROF512 PROF256, PROF256 449512fe85Sahl 459512fe85Sahl PROF1 469512fe85Sahl { 479512fe85Sahl this->x = 0; 489512fe85Sahl } 499512fe85Sahl 509512fe85Sahl PROF512 519512fe85Sahl { 529512fe85Sahl this->x++; 539512fe85Sahl } 549512fe85Sahl 559512fe85Sahl PROF1 569512fe85Sahl /this->x != 512/ 579512fe85Sahl { 589512fe85Sahl printf("failed! x is %d (expected 512)", this->x); 599512fe85Sahl exit(1); 609512fe85Sahl } 619512fe85Sahl 629512fe85Sahl tick-1sec 639512fe85Sahl /secs++/ 649512fe85Sahl { 659512fe85Sahl exit(0); 669512fe85Sahl } 679512fe85SahlEOF 689512fe85Sahl} 699512fe85Sahl 70*23b5c241Stomeeif [ $# != 1 ]; then 71*23b5c241Stomee echo expected one argument: '<'dtrace-path'>' 72*23b5c241Stomee exit 2 73*23b5c241Stomeefi 74*23b5c241Stomee 75*23b5c241Stomeedtrace=$1 769512fe85Sahllet i=0 779512fe85Sahl 789512fe85Sahlwhile [ "$i" -lt 20 ]; do 799512fe85Sahl script 809512fe85Sahl status=$? 819512fe85Sahl 829512fe85Sahl if [ "$status" -ne 0 ]; then 839512fe85Sahl exit $status 849512fe85Sahl fi 859512fe85Sahl 869512fe85Sahl let i=i+1 879512fe85Sahldone 889512fe85Sahl 899512fe85Sahlexit 0 90