16e0bee74Sjhaslam#!/bin/ksh -p
26e0bee74Sjhaslam#
36e0bee74Sjhaslam# CDDL HEADER START
46e0bee74Sjhaslam#
56e0bee74Sjhaslam# The contents of this file are subject to the terms of the
66e0bee74Sjhaslam# Common Development and Distribution License (the "License").
76e0bee74Sjhaslam# You may not use this file except in compliance with the License.
86e0bee74Sjhaslam#
96e0bee74Sjhaslam# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
106e0bee74Sjhaslam# or http://www.opensolaris.org/os/licensing.
116e0bee74Sjhaslam# See the License for the specific language governing permissions
126e0bee74Sjhaslam# and limitations under the License.
136e0bee74Sjhaslam#
146e0bee74Sjhaslam# When distributing Covered Code, include this CDDL HEADER in each
156e0bee74Sjhaslam# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
166e0bee74Sjhaslam# If applicable, add the following below this CDDL HEADER, with the
176e0bee74Sjhaslam# fields enclosed by brackets "[]" replaced with your own identifying
186e0bee74Sjhaslam# information: Portions Copyright [yyyy] [name of copyright owner]
196e0bee74Sjhaslam#
206e0bee74Sjhaslam# CDDL HEADER END
216e0bee74Sjhaslam#
226e0bee74Sjhaslam
236e0bee74Sjhaslam#
246e0bee74Sjhaslam# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
256e0bee74Sjhaslam# Use is subject to license terms.
266e0bee74Sjhaslam#
276e0bee74Sjhaslam
286e0bee74Sjhaslam#
296e0bee74Sjhaslam# This test verifies that specifying a glob in a pid provider name
306e0bee74Sjhaslam# (e.g., p*d$target) works.
316e0bee74Sjhaslam#
326e0bee74Sjhaslam
336e0bee74Sjhaslamif [ $# != 1 ]; then
346e0bee74Sjhaslam	echo expected one argument: '<'dtrace-path'>'
356e0bee74Sjhaslam	exit 2
366e0bee74Sjhaslamfi
376e0bee74Sjhaslam
386e0bee74Sjhaslamdtrace=$1
396e0bee74SjhaslamDIR=${TMPDIR:-/tmp}/dtest.$$
406e0bee74Sjhaslam
416e0bee74Sjhaslammkdir $DIR
426e0bee74Sjhaslamcd $DIR
436e0bee74Sjhaslam
446e0bee74Sjhaslamcat > Makefile <<EOF
456e0bee74Sjhaslamall: main
466e0bee74Sjhaslam
476e0bee74Sjhaslammain: main.o
48*a386cc11SRobert Mustacchi	gcc -m32 -o main main.o
496e0bee74Sjhaslam
506e0bee74Sjhaslammain.o: main.c
51*a386cc11SRobert Mustacchi	gcc -m32 -c main.c
526e0bee74SjhaslamEOF
536e0bee74Sjhaslam
546e0bee74Sjhaslamcat > main.c <<EOF
556e0bee74Sjhaslamvoid
566e0bee74Sjhaslamgo(void)
576e0bee74Sjhaslam{
586e0bee74Sjhaslam}
596e0bee74Sjhaslam
606e0bee74Sjhaslamint
616e0bee74Sjhaslammain(int argc, char **argv)
626e0bee74Sjhaslam{
636e0bee74Sjhaslam	go();
646e0bee74Sjhaslam
656e0bee74Sjhaslam	return (0);
666e0bee74Sjhaslam}
676e0bee74SjhaslamEOF
686e0bee74Sjhaslam
696e0bee74Sjhaslammake > /dev/null
706e0bee74Sjhaslamif [ $? -ne 0 ]; then
716e0bee74Sjhaslam	print -u2 "failed to build"
726e0bee74Sjhaslam	exit 1
736e0bee74Sjhaslamfi
746e0bee74Sjhaslam
756e0bee74Sjhaslamcat > main.d <<'EOF'
766e0bee74Sjhaslamp*d$target::go:entry
776e0bee74Sjhaslam{
786e0bee74Sjhaslam	printf("%s:%s:%s\n", probemod, probefunc, probename);
796e0bee74Sjhaslam}
806e0bee74SjhaslamEOF
816e0bee74Sjhaslam
826e0bee74Sjhaslamscript() {
836e0bee74Sjhaslam	$dtrace -q -s ./main.d -c ./main
846e0bee74Sjhaslam}
856e0bee74Sjhaslam
866e0bee74Sjhaslamscript
876e0bee74Sjhaslamstatus=$?
886e0bee74Sjhaslam
896e0bee74Sjhaslamcd /tmp
906e0bee74Sjhaslam/usr/bin/rm -rf $DIR
916e0bee74Sjhaslam
926e0bee74Sjhaslamexit $status
93