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: # host:
# If set, only run this test on hosts matching the given glob. # 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. # Each option may occur at most once unless otherwise mentioned.
# #
# After the option lines come regexp lines. run_lookup_test calls # 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(xfail) {}
set opts(no_cross) {} set opts(no_cross) {}
set opts(host) {} set opts(host) {}
set opts(wrapper) {}
foreach i $opt_array { foreach i $opt_array {
set opt_name [lindex $i 0] 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"] set f [open "tmpdir/lookup.out" "w"]
puts $f $results puts $f $results