1# 2# CDDL HEADER START 3# 4# The contents of this file are subject to the terms of the 5# Common Development and Distribution License (the "License"). 6# You may not use this file except in compliance with the License. 7# 8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9# or http://www.opensolaris.org/os/licensing. 10# See the License for the specific language governing permissions 11# and limitations under the License. 12# 13# When distributing Covered Code, include this CDDL HEADER in each 14# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15# If applicable, add the following below this CDDL HEADER, with the 16# fields enclosed by brackets "[]" replaced with your own identifying 17# information: Portions Copyright [yyyy] [name of copyright owner] 18# 19# CDDL HEADER END 20# 21 22# 23# Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24# Use is subject to license terms. 25# 26#ident "%Z%%M% %I% %E% SMI" 27 28ppriv -s A=basic,dtrace_proc,dtrace_user $$ 29 30/usr/sbin/dtrace -q -s /dev/stdin <<"EOF" 31BEGIN { 32 errorcount = 0; 33 expected_errorcount = 7; 34} 35 36/* BYREF */ 37BEGIN { trace(`utsname); } 38BEGIN { trace(`kmem_flags); } 39 40/* DIF_OP_SCMP */ 41BEGIN /`initname == "/sbin/init"/ { trace("bad"); } 42 43/* DIF_OP_COPYS */ 44BEGIN { p = `p0; trace(p); } 45 46/* DIF_OP_STTS */ 47BEGIN { self->p = `p0; trace(self->p); } 48 49/* DIF_OP_STGAA */ 50BEGIN { a[stringof(`initname)] = 42; trace(a["/sbin/init"]); } 51 52/* DIF_OP_STTAA */ 53BEGIN { self->a[stringof(`initname)] = 42; trace(self->a["/sbin/init"]); } 54 55ERROR { 56 errorcount++; 57} 58 59BEGIN /errorcount == expected_errorcount/ { 60 trace("pass"); 61 exit(0); 62} 63 64BEGIN /errorcount != expected_errorcount/ { 65 printf("fail: expected %d. saw %d.", expected_errorcount, errorcount); 66 exit(1); 67} 68EOF 69 70exit $? 71