[DTrace-devel] [PATCH v4 21/25] usdt: testsuite updates

Nick Alcock nick.alcock at oracle.com
Fri Oct 7 10:25:17 UTC 2022


A lot of tests can be enabled now, but a lot are still XFAIL: anything
that relies on is-enabled probes, systemwide probing, globbing of USDT
probe names, or args which are non-integral are guaranteed broken.

We add one new test to make sure that you can run a probe-containing
program and then repeatedly probe it from multiple dtraces in turn
without them messing up each others' probes in any way: the probes
linger from one dtrace to the next.  (Doing it from multiple dtraces in
*parallel* may well not work yet, as no specific code has been written
to make it work: that's planned for the next phase.)

Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
---
 test/triggers/Build                           |  2 +-
 test/unittest/pid/tst.provregex3.sh           |  2 +-
 test/unittest/usdt/tst.args-alt.aarch64.x     | 16 +++++++
 test/unittest/usdt/tst.args-alt.d             |  3 +-
 test/unittest/usdt/tst.args.d                 |  3 +-
 test/unittest/usdt/tst.dlclose1.sh            |  2 -
 test/unittest/usdt/tst.dlclose2.sh            |  5 ++-
 test/unittest/usdt/tst.dlclose3.sh            |  4 +-
 test/unittest/usdt/tst.dlclose3.x             |  1 -
 test/unittest/usdt/tst.eliminate.sh           |  4 +-
 test/unittest/usdt/tst.enable.d               |  4 +-
 test/unittest/usdt/tst.enable_and.d           |  4 +-
 test/unittest/usdt/tst.enable_and_2.d         |  4 +-
 test/unittest/usdt/tst.enable_or.d            |  3 +-
 test/unittest/usdt/tst.enable_or_2.d          |  4 +-
 test/unittest/usdt/tst.enable_return.d        |  4 +-
 test/unittest/usdt/tst.enable_stmt.d          |  4 +-
 test/unittest/usdt/tst.enabled.sh             |  4 +-
 test/unittest/usdt/tst.enabled2.sh            |  4 +-
 test/unittest/usdt/tst.entryreturn.sh         |  5 ++-
 test/unittest/usdt/tst.fork.sh                |  4 +-
 test/unittest/usdt/tst.guess32.sh             |  3 +-
 test/unittest/usdt/tst.guess64.sh             |  3 +-
 test/unittest/usdt/tst.lingering.r            |  8 ++++
 .../usdt/{tst.fork.sh => tst.lingering.sh}    | 44 ++++++++++++-------
 test/unittest/usdt/tst.multiple.sh            |  3 +-
 test/unittest/usdt/tst.reeval.sh              |  4 +-
 test/unittest/usdt/tst.static.sh              |  3 +-
 test/unittest/usdt/tst.static2.sh             |  3 +-
 test/unittest/usdt/tst.tailcall.d             |  5 +--
 30 files changed, 94 insertions(+), 68 deletions(-)
 create mode 100755 test/unittest/usdt/tst.args-alt.aarch64.x
 delete mode 120000 test/unittest/usdt/tst.dlclose3.x
 create mode 100644 test/unittest/usdt/tst.lingering.r
 copy test/unittest/usdt/{tst.fork.sh => tst.lingering.sh} (66%)

diff --git a/test/triggers/Build b/test/triggers/Build
index 6321b8468892..c3afb175639f 100644
--- a/test/triggers/Build
+++ b/test/triggers/Build
@@ -12,7 +12,7 @@ EXTERNAL_64BIT_TRIGGERS = testprobe readwholedir mmap bogus-ioctl open delaydie
     ustack-tst-spin ustack-tst-mtspin \
     visible-constructor visible-constructor-static visible-constructor-static-unstripped
 
-# EXTERNAL_64BIT_SDT_TRIGGERS = usdt-tst-argmap usdt-tst-args usdt-tst-forker usdt-tst-special
+EXTERNAL_64BIT_SDT_TRIGGERS = usdt-tst-argmap usdt-tst-args usdt-tst-forker usdt-tst-special
 EXTERNAL_64BIT_TRIGGERS += $(EXTERNAL_64BIT_SDT_TRIGGERS)
 
 EXTERNAL_32BIT_TRIGGERS := visible-constructor-32
diff --git a/test/unittest/pid/tst.provregex3.sh b/test/unittest/pid/tst.provregex3.sh
index e1c64949fcb6..89ca4aec46a5 100755
--- a/test/unittest/pid/tst.provregex3.sh
+++ b/test/unittest/pid/tst.provregex3.sh
@@ -9,7 +9,7 @@
 # USDT probes as well as pid probes (e.g., p*d$target matches both 
 # pid$target and pyramid$target.)
 #
-# @@xfail: dtv2
+# @@xfail: dtv2 (wildcarded usdt probes not yet implemented)
 
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
diff --git a/test/unittest/usdt/tst.args-alt.aarch64.x b/test/unittest/usdt/tst.args-alt.aarch64.x
new file mode 100755
index 000000000000..ac986d066443
--- /dev/null
+++ b/test/unittest/usdt/tst.args-alt.aarch64.x
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+read MAJOR MINOR <<< `uname -r | grep -Eo '^[0-9]+\.[0-9]+' | tr '.' ' '`
+
+if [ $MAJOR -gt 5 ]; then
+	exit 0
+fi
+if [ $MAJOR -eq 5 -a $MINOR -gt 4 ]; then
+	exit 0
+fi
+
+# Technically, Linux 5.4 should also work, but there seem to be problems with
+# UEK6.
+
+echo "usdt probes have bad arg8/arg9 on pre-5.5 kernels on ARM"
+exit 1
diff --git a/test/unittest/usdt/tst.args-alt.d b/test/unittest/usdt/tst.args-alt.d
index ba0be203b29f..e83835e28969 100644
--- a/test/unittest/usdt/tst.args-alt.d
+++ b/test/unittest/usdt/tst.args-alt.d
@@ -1,11 +1,10 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
 /* @@trigger: usdt-tst-args */
 /* @@trigger-timing: before */
 /* @@runtest-opts: $_pid */
diff --git a/test/unittest/usdt/tst.args.d b/test/unittest/usdt/tst.args.d
index 1397e60c97aa..bf15c6d696e3 100644
--- a/test/unittest/usdt/tst.args.d
+++ b/test/unittest/usdt/tst.args.d
@@ -1,11 +1,10 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
 /* @@trigger: usdt-tst-args */
 /* @@trigger-timing: before */
 /* @@runtest-opts: $_pid */
diff --git a/test/unittest/usdt/tst.dlclose1.sh b/test/unittest/usdt/tst.dlclose1.sh
index 81fa2415e52d..ee4d95f3bf20 100755
--- a/test/unittest/usdt/tst.dlclose1.sh
+++ b/test/unittest/usdt/tst.dlclose1.sh
@@ -27,8 +27,6 @@
 #
 # The first USDT provider check should find test_prov$pid.
 # The second should not.
-#
-# @@xfail: dtv2 (USDT probes)
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.dlclose2.sh b/test/unittest/usdt/tst.dlclose2.sh
index 0ee868fa9b3e..782e42555736 100755
--- a/test/unittest/usdt/tst.dlclose2.sh
+++ b/test/unittest/usdt/tst.dlclose2.sh
@@ -1,12 +1,13 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
+# @@xfail: dtv2, no wildcard usdt probes yet
+#
 PATH=/usr/bin:/usr/sbin:$PATH
-# @@xfail: dtv2
 
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
diff --git a/test/unittest/usdt/tst.dlclose3.sh b/test/unittest/usdt/tst.dlclose3.sh
index 0a98608fbdc8..9ee91c8d23ab 100755
--- a/test/unittest/usdt/tst.dlclose3.sh
+++ b/test/unittest/usdt/tst.dlclose3.sh
@@ -1,10 +1,12 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2007, 2021, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
+# @@xfail: dtv2, needs dtprobed synchronization with running dtraces
+# @@tags: unstable
 
 #
 # This test verifies that performing a dlclose(3dl) on a library doesn't
diff --git a/test/unittest/usdt/tst.dlclose3.x b/test/unittest/usdt/tst.dlclose3.x
deleted file mode 120000
index 6507ccd87ea5..000000000000
--- a/test/unittest/usdt/tst.dlclose3.x
+++ /dev/null
@@ -1 +0,0 @@
-../pid/test.x
\ No newline at end of file
diff --git a/test/unittest/usdt/tst.eliminate.sh b/test/unittest/usdt/tst.eliminate.sh
index 4dbd52849de4..63541ff2454f 100755
--- a/test/unittest/usdt/tst.eliminate.sh
+++ b/test/unittest/usdt/tst.eliminate.sh
@@ -1,10 +1,10 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
-# @@xfail: Linux ld does not seem to supoprt STV_ELIMINATE
+# @@xfail: Linux ld does not seem to support STV_ELIMINATE
 #
 # Make sure temporary symbols generated due to DTrace probes in static
 # functions are removed in the final link step.
diff --git a/test/unittest/usdt/tst.enable.d b/test/unittest/usdt/tst.enable.d
index f35e7ddf6966..1211af97290a 100644
--- a/test/unittest/usdt/tst.enable.d
+++ b/test/unittest/usdt/tst.enable.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 2 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_and.d b/test/unittest/usdt/tst.enable_and.d
index 21deb6d5a781..94a053ef43bb 100644
--- a/test/unittest/usdt/tst.enable_and.d
+++ b/test/unittest/usdt/tst.enable_and.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 5 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_and_2.d b/test/unittest/usdt/tst.enable_and_2.d
index ac6f06176045..3b2963f4330b 100644
--- a/test/unittest/usdt/tst.enable_and_2.d
+++ b/test/unittest/usdt/tst.enable_and_2.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 6 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_or.d b/test/unittest/usdt/tst.enable_or.d
index 73a1bdd16484..d935360dc40a 100644
--- a/test/unittest/usdt/tst.enable_or.d
+++ b/test/unittest/usdt/tst.enable_or.d
@@ -1,11 +1,10 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
 /* @@trigger: usdt-tst-special 3 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_or_2.d b/test/unittest/usdt/tst.enable_or_2.d
index 8d3483be3e23..6b599544fe9f 100644
--- a/test/unittest/usdt/tst.enable_or_2.d
+++ b/test/unittest/usdt/tst.enable_or_2.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 4 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_return.d b/test/unittest/usdt/tst.enable_return.d
index 5a6f998aa7fd..0d727b8a6d0c 100644
--- a/test/unittest/usdt/tst.enable_return.d
+++ b/test/unittest/usdt/tst.enable_return.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 8 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enable_stmt.d b/test/unittest/usdt/tst.enable_stmt.d
index 2c1c775e2fce..5c26919f764d 100644
--- a/test/unittest/usdt/tst.enable_stmt.d
+++ b/test/unittest/usdt/tst.enable_stmt.d
@@ -1,11 +1,11 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
+/* @@xfail: dtv2, no is-enabled probes yet */
 /* @@trigger: usdt-tst-special 7 */
 
 #pragma D option quiet
diff --git a/test/unittest/usdt/tst.enabled.sh b/test/unittest/usdt/tst.enabled.sh
index 21c44b5c46a5..5363172fd8b4 100755
--- a/test/unittest/usdt/tst.enabled.sh
+++ b/test/unittest/usdt/tst.enabled.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -9,7 +9,7 @@ if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
+# @@xfail: dtv2, no is-enabled probes yet
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.enabled2.sh b/test/unittest/usdt/tst.enabled2.sh
index da7233a76d00..c70bef507e89 100755
--- a/test/unittest/usdt/tst.enabled2.sh
+++ b/test/unittest/usdt/tst.enabled2.sh
@@ -1,15 +1,13 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2008, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
 # This test is primarily intended to verify a fix for SPARC, but there's no
 # harm in running it on other platforms. Here, we verify that is-enabled
 # probes don't interfere with return values from previously invoked functions.
-#
-# @@xfail: dtv2
 
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
diff --git a/test/unittest/usdt/tst.entryreturn.sh b/test/unittest/usdt/tst.entryreturn.sh
index e9b97cdb2b1a..6c14ece211c8 100755
--- a/test/unittest/usdt/tst.entryreturn.sh
+++ b/test/unittest/usdt/tst.entryreturn.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -9,7 +9,8 @@ if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
+
+# @@xfail: dtv2, no wildcard usdt probes yet
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.fork.sh b/test/unittest/usdt/tst.fork.sh
index 7c99ecc1844e..dc30b2c5598b 100755
--- a/test/unittest/usdt/tst.fork.sh
+++ b/test/unittest/usdt/tst.fork.sh
@@ -1,15 +1,15 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
+# @@xfail: dtv2, no real probe-in-forked-child support yet
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.guess32.sh b/test/unittest/usdt/tst.guess32.sh
index f4dedeb72aad..20ad0e7346ab 100755
--- a/test/unittest/usdt/tst.guess32.sh
+++ b/test/unittest/usdt/tst.guess32.sh
@@ -1,10 +1,9 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
-# @@xfail: dtv2
 
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
diff --git a/test/unittest/usdt/tst.guess64.sh b/test/unittest/usdt/tst.guess64.sh
index 03410ad05fe9..52750baf4792 100755
--- a/test/unittest/usdt/tst.guess64.sh
+++ b/test/unittest/usdt/tst.guess64.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -9,7 +9,6 @@ if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.lingering.r b/test/unittest/usdt/tst.lingering.r
new file mode 100644
index 000000000000..31babb1670ac
--- /dev/null
+++ b/test/unittest/usdt/tst.lingering.r
@@ -0,0 +1,8 @@
+test:main:go
+
+test:main:go2
+
+test:main:go2
+
+test:main:go
+
diff --git a/test/unittest/usdt/tst.fork.sh b/test/unittest/usdt/tst.lingering.sh
similarity index 66%
copy from test/unittest/usdt/tst.fork.sh
copy to test/unittest/usdt/tst.lingering.sh
index 7c99ecc1844e..bee59df44da7 100755
--- a/test/unittest/usdt/tst.fork.sh
+++ b/test/unittest/usdt/tst.lingering.sh
@@ -1,27 +1,30 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
+# Test multiple probes, repeatedly invoked by multiple dtraces
+# on the same running trigger
+#
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
 CFLAGS=
 
-DIRNAME="$tmpdir/usdt-fork.$$.$RANDOM"
+DIRNAME="$tmpdir/usdt-lingering.$$.$RANDOM"
 mkdir -p $DIRNAME
 cd $DIRNAME
 
 cat > prov.d <<EOF
 provider test_prov {
 	probe go();
+	probe go2();
 };
 EOF
 
@@ -33,22 +36,18 @@ fi
 
 cat > test.c <<EOF
 #include <sys/types.h>
-#include <sys/wait.h>
 #include <unistd.h>
 #include "prov.h"
 
 int
 main(int argc, char **argv)
 {
-	TEST_PROV_GO();
-	if (fork() == 0) {
+	for (;;) {
 		TEST_PROV_GO();
-		return 0;
+		TEST_PROV_GO2();
+		sleep(1);
 	}
 
-	wait(NULL);
-	TEST_PROV_GO();
-
 	return 0;
 }
 EOF
@@ -69,16 +68,29 @@ if [ $? -ne 0 ]; then
 	exit 1
 fi
 
+./test &
+TRIGPID=$!
+
+trap 'kill -9 $TRIGPID' ERR EXIT
+
 script() {
-	$dtrace -c ./test -Zqs /dev/stdin <<EOF
-	test_prov*:::
+	$dtrace -p $TRIGPID -qs /dev/stdin <<EOF
+	test_prov\$target:::$1
 	{
 		printf("%s:%s:%s\n", probemod, probefunc, probename);
+		exit(0);
+	}
+
+	tick-5s
+	{
+		printf("probe $1 timed out\n");
+		exit(1);
 	}
 EOF
 }
 
-script
-status=$?
-
-exit $status
+set -e
+script go
+script go2
+script go2
+script go
diff --git a/test/unittest/usdt/tst.multiple.sh b/test/unittest/usdt/tst.multiple.sh
index 28a3fcd874b7..eb0a7ccf5e4d 100755
--- a/test/unittest/usdt/tst.multiple.sh
+++ b/test/unittest/usdt/tst.multiple.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -9,7 +9,6 @@ if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.reeval.sh b/test/unittest/usdt/tst.reeval.sh
index 0340931d4b33..3b32a280f757 100755
--- a/test/unittest/usdt/tst.reeval.sh
+++ b/test/unittest/usdt/tst.reeval.sh
@@ -1,15 +1,15 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2007, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
+# @@xfail: dtv2, needs sdt
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.static.sh b/test/unittest/usdt/tst.static.sh
index 62c89296bfba..a016f1c6c174 100755
--- a/test/unittest/usdt/tst.static.sh
+++ b/test/unittest/usdt/tst.static.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
@@ -9,7 +9,6 @@ if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
 	exit 2
 fi
-# @@xfail: dtv2
 
 dtrace=$1
 CC=/usr/bin/gcc
diff --git a/test/unittest/usdt/tst.static2.sh b/test/unittest/usdt/tst.static2.sh
index b1aa674fe4ea..ec6118730283 100755
--- a/test/unittest/usdt/tst.static2.sh
+++ b/test/unittest/usdt/tst.static2.sh
@@ -1,14 +1,13 @@
 #!/bin/bash
 #
 # Oracle Linux DTrace.
-# Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
 # Licensed under the Universal Permissive License v 1.0 as shown at
 # http://oss.oracle.com/licenses/upl.
 #
 # Rebuilding an object file containing DOF changes slightly when the object
 # files containing the probes have already been modified. This tests that
 # case by generating the DOF object, removing it, and building it again.
-# @@xfail: dtv2
 
 if [ $# != 1 ]; then
 	echo expected one argument: '<'dtrace-path'>'
diff --git a/test/unittest/usdt/tst.tailcall.d b/test/unittest/usdt/tst.tailcall.d
index e2d5508e6dce..0033b867dd86 100644
--- a/test/unittest/usdt/tst.tailcall.d
+++ b/test/unittest/usdt/tst.tailcall.d
@@ -1,11 +1,10 @@
 /*
  * Oracle Linux DTrace.
- * Copyright (c) 2006, 2020, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2022, Oracle and/or its affiliates. All rights reserved.
  * Licensed under the Universal Permissive License v 1.0 as shown at
  * http://oss.oracle.com/licenses/upl.
  */
 
-/* @@xfail: dtv2 */
 /* @@trigger: usdt-tst-special 1 */
 
 #pragma D option quiet
@@ -13,7 +12,7 @@
 /*
  * ASSERTION:
  *	Make sure that if a probe is rendered into a tail call by the compiler,
- *	we can still use it.  Fo architectures that do not compile the trigger
+ *	we can still use it.  For architectures that do not compile the trigger
  *	code into a tail-call scenario, this will work as a regular USDT probe
  *	test as last instruction of a function.
  */
-- 
2.35.1




More information about the DTrace-devel mailing list