libctf: test: add wrapper

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.
This commit is contained in:
Nick Alcock
2024-04-26 18:16:49 +01:00
parent e449709833
commit 8c59ec7006

View 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