1*1670a1c2SRui Paulo#!/bin/ksh -p 2*1670a1c2SRui Paulo# 3*1670a1c2SRui Paulo# CDDL HEADER START 4*1670a1c2SRui Paulo# 5*1670a1c2SRui Paulo# The contents of this file are subject to the terms of the 6*1670a1c2SRui Paulo# Common Development and Distribution License (the "License"). 7*1670a1c2SRui Paulo# You may not use this file except in compliance with the License. 8*1670a1c2SRui Paulo# 9*1670a1c2SRui Paulo# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*1670a1c2SRui Paulo# or http://www.opensolaris.org/os/licensing. 11*1670a1c2SRui Paulo# See the License for the specific language governing permissions 12*1670a1c2SRui Paulo# and limitations under the License. 13*1670a1c2SRui Paulo# 14*1670a1c2SRui Paulo# When distributing Covered Code, include this CDDL HEADER in each 15*1670a1c2SRui Paulo# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*1670a1c2SRui Paulo# If applicable, add the following below this CDDL HEADER, with the 17*1670a1c2SRui Paulo# fields enclosed by brackets "[]" replaced with your own identifying 18*1670a1c2SRui Paulo# information: Portions Copyright [yyyy] [name of copyright owner] 19*1670a1c2SRui Paulo# 20*1670a1c2SRui Paulo# CDDL HEADER END 21*1670a1c2SRui Paulo# 22*1670a1c2SRui Paulo 23*1670a1c2SRui Paulo# 24*1670a1c2SRui Paulo# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 25*1670a1c2SRui Paulo# Use is subject to license terms. 26*1670a1c2SRui Paulo# 27*1670a1c2SRui Paulo 28*1670a1c2SRui Paulo 29*1670a1c2SRui Paulo# 30*1670a1c2SRui Paulo# This tests that enablings from the cpc provider will fail if cpustat(1) is 31*1670a1c2SRui Paulo# already master of the universe. 32*1670a1c2SRui Paulo# 33*1670a1c2SRui Paulo# This script will fail if: 34*1670a1c2SRui Paulo# 1) The system under test does not define the 'PAPI_tot_ins' 35*1670a1c2SRui Paulo# generic event. 36*1670a1c2SRui Paulo 37*1670a1c2SRui Pauloscript() 38*1670a1c2SRui Paulo{ 39*1670a1c2SRui Paulo $dtrace -s /dev/stdin <<EOF 40*1670a1c2SRui Paulo #pragma D option bufsize=128k 41*1670a1c2SRui Paulo 42*1670a1c2SRui Paulo BEGIN 43*1670a1c2SRui Paulo { 44*1670a1c2SRui Paulo exit(0); 45*1670a1c2SRui Paulo } 46*1670a1c2SRui Paulo 47*1670a1c2SRui Paulo cpc:::PAPI_tot_ins-all-10000 48*1670a1c2SRui Paulo { 49*1670a1c2SRui Paulo @[probename] = count(); 50*1670a1c2SRui Paulo } 51*1670a1c2SRui PauloEOF 52*1670a1c2SRui Paulo} 53*1670a1c2SRui Paulo 54*1670a1c2SRui Pauloif [ $# != 1 ]; then 55*1670a1c2SRui Paulo echo expected one argument: '<'dtrace-path'>' 56*1670a1c2SRui Paulo exit 2 57*1670a1c2SRui Paulofi 58*1670a1c2SRui Paulo 59*1670a1c2SRui Paulodtrace=$1 60*1670a1c2SRui Paulodtraceout=/tmp/dtrace.out.$$ 61*1670a1c2SRui Paulo 62*1670a1c2SRui Paulocpustat -c PAPI_tot_ins 1 20 & 63*1670a1c2SRui Paulopid=$! 64*1670a1c2SRui Paulosleep 5 65*1670a1c2SRui Pauloscript 2>/dev/null 66*1670a1c2SRui Paulo 67*1670a1c2SRui Paulostatus=$? 68*1670a1c2SRui Paulo 69*1670a1c2SRui Paulokill $pid 70*1670a1c2SRui Pauloexit $status 71