xref: /freebsd/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.provregex1.ksh (revision b2db760808f74bb53c232900091c9da801ebbfcc)
1#!/bin/ksh -p
2#
3# CDDL HEADER START
4#
5# The contents of this file are subject to the terms of the
6# Common Development and Distribution License (the "License").
7# You may not use this file except in compliance with the License.
8#
9# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10# or http://www.opensolaris.org/os/licensing.
11# See the License for the specific language governing permissions
12# and limitations under the License.
13#
14# When distributing Covered Code, include this CDDL HEADER in each
15# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16# If applicable, add the following below this CDDL HEADER, with the
17# fields enclosed by brackets "[]" replaced with your own identifying
18# information: Portions Copyright [yyyy] [name of copyright owner]
19#
20# CDDL HEADER END
21#
22
23#
24# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
25# Use is subject to license terms.
26#
27# ident	"%Z%%M%	%I%	%E% SMI"
28
29#
30# This test verifies that specifying a glob in a pid provider name
31# (e.g., p*d$target) works.
32#
33
34if [ $# != 1 ]; then
35	echo expected one argument: '<'dtrace-path'>'
36	exit 2
37fi
38
39dtrace=$1
40DIR=${TMPDIR:-/tmp}/dtest.$$
41
42mkdir $DIR
43cd $DIR
44
45cat > Makefile <<EOF
46all: main
47
48main: main.o
49	cc -o main main.o
50
51main.o: main.c
52	cc -c main.c
53EOF
54
55cat > main.c <<EOF
56void
57go(void)
58{
59}
60
61int
62main(int argc, char **argv)
63{
64	go();
65
66	return (0);
67}
68EOF
69
70make > /dev/null
71if [ $? -ne 0 ]; then
72	print -u2 "failed to build"
73	exit 1
74fi
75
76cat > main.d <<'EOF'
77p*d$target::go:entry
78{
79	printf("%s:%s:%s\n", probemod, probefunc, probename);
80}
81EOF
82
83script() {
84	$dtrace -q -s ./main.d -c ./main
85}
86
87script
88status=$?
89
90cd /tmp
91/bin/rm -rf $DIR
92
93exit $status
94