[PATCH 6/7] libctf: test: add wrapper

Nick Alcock nick.alcock@oracle.com
Fri Apr 26 20:20:22 GMT 2024


This .lk option lets you run the lookup program via a wrapper executable.
For example, to run under valgrind and check for leaks (albeit noisily
because of the libtool shell script wrapper):

libctf/
	* testsuite/lib/ctf-lib.exp (run_lookup_test): Add wrapper.
---
 libctf/testsuite/lib/ctf-lib.exp | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/libctf/testsuite/lib/ctf-lib.exp b/libctf/testsuite/lib/ctf-lib.exp
index 1f76e0b1aba..20bcf0c8bbe 100644
--- a/libctf/testsuite/lib/ctf-lib.exp
+++ b/libctf/testsuite/lib/ctf-lib.exp
@@ -112,6 +112,10 @@ proc compile_link_one_host_cc { src output additional_args } {
 #   host:
 #       If set, only run this test on hosts matching the given glob.
 #
+#   wrapper:
+#       Wrap invocations of LOOKUP in this command.  (Useful for valgrind
+#       invocations, etc.)
+#
 # Each option may occur at most once unless otherwise mentioned.
 #
 # After the option lines come regexp lines.  run_lookup_test calls
@@ -151,6 +155,7 @@ proc run_lookup_test { name } {
     set opts(xfail) {}
     set opts(no_cross) {}
     set opts(host) {}
+    set opts(wrapper) {}
 
     foreach i $opt_array {
 	set opt_name [lindex $i 0]
@@ -257,9 +262,13 @@ proc run_lookup_test { name } {
 	}
     }
 
-    # Invoke the lookup program on the outputs.
+    # Invoke the lookup program on the outputs, possibly through the wrapper.
 
-    set results [run_host_cmd tmpdir/lookup $lookup_output]
+    if { [llength $opts(wrapper)] == 0 } {
+	set results [run_host_cmd tmpdir/lookup $lookup_output]
+    } else {
+	set results [run_host_cmd "$opts(wrapper) tmpdir/lookup" $lookup_output]
+    }
 
     set f [open "tmpdir/lookup.out" "w"]
     puts $f $results
-- 
2.44.0.273.ge0bd14271f



More information about the Binutils mailing list