diff options
author | Chris Demetriou <cgd@google.com> | 2002-04-22 21:14:43 +0000 |
---|---|---|
committer | Chris Demetriou <cgd@google.com> | 2002-04-22 21:14:43 +0000 |
commit | ff970196bd5561eb16b271a0947ea1919186c377 (patch) | |
tree | 462285de271613b9ca0943bdf552bb7e80082c07 /gas/testsuite/lib | |
parent | ea74468cd028a4fc0a500ae8f7a13ba373b9af99 (diff) | |
download | gdb-ff970196bd5561eb16b271a0947ea1919186c377.zip gdb-ff970196bd5561eb16b271a0947ea1919186c377.tar.gz gdb-ff970196bd5561eb16b271a0947ea1919186c377.tar.bz2 |
2002-04-22 Chris Demetriou <cgd@broadcom.com>
* lib/gas-defs.exp (run_dump_test): Support new attribute "stderr"
which is a file used to regexp_diff the assembler's pruned stderr
output.
(write_file): New helper function to write a string into a file.
* gas/mips/empic.l: New file which matches empic tests' warnings.
* gas/mips/empic.d: Use empic.l.
Diffstat (limited to 'gas/testsuite/lib')
-rw-r--r-- | gas/testsuite/lib/gas-defs.exp | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/gas/testsuite/lib/gas-defs.exp b/gas/testsuite/lib/gas-defs.exp index e695abf..777c0e1 100644 --- a/gas/testsuite/lib/gas-defs.exp +++ b/gas/testsuite/lib/gas-defs.exp @@ -266,6 +266,7 @@ proc run_dump_test { name } { set opts(name) {} set opts(PROG) {} set opts(source) {} + set opts(stderr) {} foreach i $opt_array { set opt_name [lindex $i 0] @@ -339,10 +340,30 @@ proc run_dump_test { name } { set comp_output [prune_warnings $comp_output] if ![string match "" $comp_output] then { - send_log "$comp_output\n" - verbose "$comp_output" 3 - fail $testname - return + if { $opts(stderr) == "" } then { + send_log "$comp_output\n" + verbose "$comp_output" 3 + fail $testname + return + } else { + catch {write_file dump.stderr "$comp_output"} write_output + if ![string match "" $write_output] then { + send_log "error writing dump.stderr: $write_output\n" + verbose "error writing dump.stderr: $write_output" 3 + send_log "$comp_output\n" + verbose "$comp_output" 3 + fail $testname + return + } + set stderrfile $srcdir/$subdir/$opts(stderr) + send_log "wrote pruned stderr to dump.stderr\n" + verbose "wrote pruned stderr to dump.stderr" 3 + if { [regexp_diff "dump.stderr" "$stderrfile"] } then { + fail $testname + verbose "pruned stderr is [file_contents "dump.stderr"]" 2 + return + } + } } if { [which $binary] == 0 } { @@ -564,6 +585,12 @@ proc file_contents { filename } { return $contents } +proc write_file { filename contents } { + set file [open $filename w] + puts $file "$contents" + close $file +} + proc verbose_eval { expr { level 1 } } { global verbose if $verbose>$level then { eval verbose "$expr" $level } |