]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
libctf: test: add wrapper
authorNick Alcock <nick.alcock@oracle.com>
Fri, 26 Apr 2024 17:16:49 +0000 (18:16 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Fri, 17 May 2024 11:58:18 +0000 (12:58 +0100)
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

index c31573efa0297e7623723a4f075dbd650bd8213e..eb2b738498d2ceb4497a9636eacd59fb04aa9b20 100644 (file)
@@ -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