b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#!/bin/ksh -p
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# CDDL HEADER START
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# The contents of this file are subject to the terms of the
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# Common Development and Distribution License (the "License").
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# You may not use this file except in compliance with the License.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# or http://www.opensolaris.org/os/licensing.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# See the License for the specific language governing permissions
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# and limitations under the License.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# When distributing Covered Code, include this CDDL HEADER in each
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# If applicable, add the following below this CDDL HEADER, with the
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# fields enclosed by brackets "[]" replaced with your own identifying
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# information: Portions Copyright [yyyy] [name of copyright owner]
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# CDDL HEADER END
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# Use is subject to license terms.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# This tests that enablings from the cpc provider will fail if cpustat(1) is
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# already master of the universe.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam#
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# This script will fail if:
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# 1) The system under test does not define the 'PAPI_tot_ins'
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam# generic event.
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamscript()
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam{
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam $dtrace -s /dev/stdin <<EOF
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam #pragma D option bufsize=128k
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam BEGIN
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam {
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam exit(0);
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam }
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam cpc:::PAPI_tot_ins-all-10000
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam {
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam @[probename] = count();
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam }
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan HaslamEOF
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam}
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamif [ $# != 1 ]; then
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam echo expected one argument: '<'dtrace-path'>'
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam exit 2
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamfi
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamdtrace=$1
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamdtraceout=/tmp/dtrace.out.$$
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamcpustat -c PAPI_tot_ins 1 20 &
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslampid=$!
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamsleep 5
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamscript 2>/dev/null
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamstatus=$?
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslam
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamkill $pid
b9e93c10c0a2a4bb069d38bb311021a9478c4711Jonathan Haslamexit $status