run_dump_test warning/error regexp

This allows you to specify a run_dump_test warning that may or may not
be present using
warning: (warning_text_goes_here)?
ie. the regexp matches an empty string.
This commit is contained in:
Alan Modra
2025-01-18 22:21:03 +10:30
parent bea261b937
commit 592819f718

View File

@@ -1567,12 +1567,16 @@ proc run_dump_test { name {extra_options {}} } {
verbose -log "$exitstat with: <$comp_output>, no expected output"
}
if { (($want_out(source) == "") == ($comp_output == "")) \
&& (($cmdret == 0) == ($want_out(terminal) == 0)) \
&& ((($want_out(source) == "regex") \
&& [regexp -- $want_out(regex) $comp_output]) \
|| (($want_out(source) == "file") \
&& (![regexp_diff "tmpdir/ld.messages" "$srcdir/$subdir/$want_out(file)"]))) } {
set ok 0
if { ($cmdret == 0) == ($want_out(terminal) == 0) } {
switch $want_out(source) {
regex { set ok [regexp -- $want_out(regex) $comp_output] }
file { set ok [expr ![regexp_diff tmpdir/ld.messages \
$srcdir/$subdir/$want_out(file)]] }
"" { set ok [string equal $comp_output ""] }
}
}
if { $ok } {
# We have the expected output.
if { $want_out(terminal) || $dumpprogram == "" } {
pass $testname