[DTrace-devel] [PATCH] test: Clean up tst.errno2.d

eugene.loh at oracle.com eugene.loh at oracle.com
Wed Dec 4 06:51:52 UTC 2024


From: Eugene Loh <eugene.loh at oracle.com>

Check only on the process of interest -- that is, /progenyof(parent)/.

Check that self->fn has been set before applying copyinstr() to it.

Add option zdefs in case open() is deprecated, so that the test will
run on aarch64.

Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
 test/unittest/builtinvar/tst.errno2.aarch64.x | 2 --
 test/unittest/builtinvar/tst.errno2.d         | 6 +++++-
 2 files changed, 5 insertions(+), 3 deletions(-)
 delete mode 100755 test/unittest/builtinvar/tst.errno2.aarch64.x

diff --git a/test/unittest/builtinvar/tst.errno2.aarch64.x b/test/unittest/builtinvar/tst.errno2.aarch64.x
deleted file mode 100755
index 5c66540d1..000000000
--- a/test/unittest/builtinvar/tst.errno2.aarch64.x
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exit 2
diff --git a/test/unittest/builtinvar/tst.errno2.d b/test/unittest/builtinvar/tst.errno2.d
index 22fe8b4a2..939f4c7d7 100644
--- a/test/unittest/builtinvar/tst.errno2.d
+++ b/test/unittest/builtinvar/tst.errno2.d
@@ -15,6 +15,7 @@
 
 #pragma D option quiet
 #pragma D option destructive
+#pragma D option zdefs
 
 BEGIN
 {
@@ -27,19 +28,22 @@ BEGIN
  * Record file name pointer arg1 for the 'openat' function and arg0 for 'open'.
  */
 syscall::open:entry
+/progenyof(parent)/
 {
 	self->fn = arg0;  /* 'open' arg0 holds a pointer to the file name */
 }
 
 syscall::openat:entry
+/progenyof(parent)/
 {
 	self->fn = arg1;  /* 'openat' arg1 holds a pointer to the file name */
 }
 
 syscall::open*:return
-/copyinstr(self->fn) == "/non/existant/file" && errno != 0/
+/self->fn && copyinstr(self->fn) == "/non/existant/file" && errno != 0/
 {
 	printf("OPEN FAILED with errno %d\n", errno);
+	self->fn = 0;
 }
 
 proc:::exit
-- 
2.43.5




More information about the DTrace-devel mailing list