Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jun 2014 01:16:11 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r266988 - vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt
Message-ID:  <201406030116.s531GBem038539@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Tue Jun  3 01:16:11 2014
New Revision: 266988
URL: http://svnweb.freebsd.org/changeset/base/266988

Log:
  4248 dtrace(1M) should never create DOF with empty probes section
  4249 Only probes from the first DTrace object file will be included
  
  illumos/illumos-gate@54a20ab41aadcb81c53e72fc65886e964e9add59
  
  The r258379 import of this change omitted the tests.

Added:
  vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh
  vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh.out
  vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.noprobes.ksh

Added: vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh	Tue Jun  3 01:16:11 2014	(r266988)
@@ -0,0 +1,106 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Joyent, Inc. All rights reserved.
+#
+
+if [ $# != 1 ]; then
+	echo expected one argument: '<'dtrace-path'>'
+	exit 2
+fi
+
+dtrace=$1
+DIR=/var/tmp/dtest.$$
+
+mkdir $DIR
+cd $DIR
+
+echo '#pragma D option quiet' > test.d
+echo '#pragma D option aggsortkey' >> test.d
+
+cat > test.c <<EOF
+#include <unistd.h>
+
+void
+main()
+{
+EOF
+
+objs=
+
+for oogle in doogle bagnoogle; do
+	cat > $oogle.c <<EOF
+#include <sys/sdt.h>
+
+void
+$oogle()
+{
+	DTRACE_PROBE($oogle, knows);
+}
+EOF
+
+	cat > $oogle.d <<EOF
+provider $oogle {
+	probe knows();
+};
+EOF
+
+	cc -c $oogle.c
+
+	if [ $? -ne 0 ]; then
+		print -u2 "failed to compile $oogle.c"
+		exit 1
+	fi
+
+	$dtrace -G -32 -s $oogle.d $oogle.o -o $oogle.d.o
+
+	if [ $? -ne 0 ]; then
+		print -u2 "failed to process $oogle.d"
+		exit 1
+	fi
+
+	objs="$objs $oogle.o $oogle.d.o"
+	echo $oogle'();' >> test.c
+	echo $oogle'$target:::{@[probefunc] = count()}' >> test.d
+done
+
+echo "}" >> test.c
+
+echo 'END{printa("%-10s %@d\\n", @)}' >> test.d
+
+cc -o test test.c $objs
+
+if [ $? -ne 0 ]; then
+	print -u2 "failed to compile test.c"
+	exit 1
+fi
+
+$dtrace -s ./test.d -Zc ./test
+
+if [ $? -ne 0 ]; then
+	print -u2 "failed to execute test"
+	exit 1
+fi
+
+cd /
+/usr/bin/rm -rf $DIR
+exit 0

Added: vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh.out
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.multiprov.ksh.out	Tue Jun  3 01:16:11 2014	(r266988)
@@ -0,0 +1,3 @@
+bagnoogle  1
+doogle     1
+

Added: vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.noprobes.ksh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ vendor/illumos/dist/cmd/dtrace/test/tst/common/usdt/tst.noprobes.ksh	Tue Jun  3 01:16:11 2014	(r266988)
@@ -0,0 +1,59 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2013, Joyent, Inc. All rights reserved.
+#
+
+if [ $# != 1 ]; then
+	echo expected one argument: '<'dtrace-path'>'
+	exit 2
+fi
+
+dtrace=$1
+DIR=/var/tmp/dtest.$$
+
+mkdir $DIR
+cd $DIR
+
+cat > test.c <<EOF
+void
+foo()
+{}
+EOF
+
+cat > doogle.d <<EOF
+provider doogle {
+	probe bagnoogle();
+};
+EOF
+
+cc -c test.c
+$dtrace -G -32 -s doogle.d test.o -o doogle.d.o
+
+if [ $? -eq 0 ]; then
+	print -u2 "dtrace succeeded despite having no probe sites"
+	exit 1
+fi
+
+cd /
+/usr/bin/rm -rf $DIR
+exit 0



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406030116.s531GBem038539>