xref: /illumos-gate/usr/src/cmd/dtrace/test/tst/common/scripting/tst.projid.ksh (revision 23b5c241225a8ade2b6b9f06ebb891ee459e3b02)
19512fe85Sahl#!/bin/ksh -p
29512fe85Sahl#
39512fe85Sahl# CDDL HEADER START
49512fe85Sahl#
59512fe85Sahl# The contents of this file are subject to the terms of the
69512fe85Sahl# Common Development and Distribution License (the "License").
79512fe85Sahl# You may not use this file except in compliance with the License.
89512fe85Sahl#
99512fe85Sahl# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
109512fe85Sahl# or http://www.opensolaris.org/os/licensing.
119512fe85Sahl# See the License for the specific language governing permissions
129512fe85Sahl# and limitations under the License.
139512fe85Sahl#
149512fe85Sahl# When distributing Covered Code, include this CDDL HEADER in each
159512fe85Sahl# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
169512fe85Sahl# If applicable, add the following below this CDDL HEADER, with the
179512fe85Sahl# fields enclosed by brackets "[]" replaced with your own identifying
189512fe85Sahl# information: Portions Copyright [yyyy] [name of copyright owner]
199512fe85Sahl#
209512fe85Sahl# CDDL HEADER END
219512fe85Sahl#
229512fe85Sahl
239512fe85Sahl#
249512fe85Sahl# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
259512fe85Sahl# Use is subject to license terms.
269512fe85Sahl#
279512fe85Sahl
289512fe85Sahl#ident	"%Z%%M%	%I%	%E% SMI"
299512fe85Sahl
309512fe85Sahl############################################################################
319512fe85Sahl# ASSERTION:
329512fe85Sahl#	To verify projid of child process.
339512fe85Sahl#
349512fe85Sahl# SECTION: Scripting
359512fe85Sahl#
369512fe85Sahl############################################################################
379512fe85Sahl
38*23b5c241Stomeeif [ $# != 1 ]; then
39*23b5c241Stomee	echo expected one argument: '<'dtrace-path'>'
40*23b5c241Stomee	exit 2
41*23b5c241Stomeefi
42*23b5c241Stomee
43*23b5c241Stomeedtrace=$1
449512fe85Sahlbname=`/bin/basename $0`
459512fe85Sahldfilename=/var/tmp/$bname.$$
469512fe85Sahl
479512fe85Sahl## Create .d file
489512fe85Sahl##########################################################################
499512fe85Sahlcat > $dfilename <<-EOF
50*23b5c241Stomee#!$dtrace -qs
519512fe85Sahl
529512fe85Sahl
539512fe85SahlBEGIN
549512fe85Sahl/\$projid != \$1/
559512fe85Sahl{
569512fe85Sahl	exit(1);
579512fe85Sahl}
589512fe85Sahl
599512fe85SahlBEGIN
609512fe85Sahl/\$projid == \$1/
619512fe85Sahl{
629512fe85Sahl	exit(0);
639512fe85Sahl}
649512fe85SahlEOF
659512fe85Sahl##########################################################################
669512fe85Sahl
679512fe85Sahl
689512fe85Sahl#Call dtrace -C -s <.d>
699512fe85Sahl
709512fe85Sahlchmod 555 $dfilename
719512fe85Sahl
729512fe85Sahlprojectid=`ps -o pid,projid | grep "$$ " | awk '{print $2}' 2>/dev/null`
739512fe85Sahlif [ $? -ne 0 ]; then
749512fe85Sahl	print -u2 "unable to get uid of the current process with pid = $$"
759512fe85Sahl	exit 1
769512fe85Sahlfi
779512fe85Sahl
789512fe85Sahl$dfilename $projectid >/dev/null 2>&1
79*23b5c241Stomee
809512fe85Sahlif [ $? -ne 0 ]; then
819512fe85Sahl	print -u2 "Error in executing $dfilename"
829512fe85Sahl	exit 1
839512fe85Sahlfi
849512fe85Sahl
859512fe85Sahl#/usr/bin/rm -f $dfilename
869512fe85Sahlexit 0
87