| # Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved. |
| # |
| # Permission to use, copy, modify, and distribute this software |
| # is freely granted, provided that this notice is preserved. |
| # |
| |
| # newlib_check_output takes the basename of the test source file, and |
| # a list of TCL regular expressions representing the expected output. |
| # It assumes one line of output per test. |
| |
| proc newlib_check_output { srcfile expectlist } { |
| global subdir srcdir tmpdir |
| |
| set srcfullname "$srcdir/$subdir/$srcfile" |
| set test_driver "$tmpdir/[file tail [file rootname $srcfullname].x]" |
| |
| set comp_output [newlib_target_compile "$srcfullname" "$test_driver" "executable" ""] |
| |
| if { $comp_output != "" } { |
| fail "$subdir/$srcfile compilation" |
| unresolved "$subdir/$srcfile output" |
| return |
| } |
| pass "$subdir/$srcfile compilation" |
| |
| set result [newlib_load $test_driver ""] |
| set status [lindex $result 0] |
| set output [lindex $result 1] |
| |
| set output_lines [split $output "\n"] |
| |
| foreach { expectedval } $expectlist { |
| set gotval [string trim [lindex $output_lines 0] "\r"] |
| if { ! [string match $expectedval $gotval] } { |
| verbose -log "$subdir/$srcfile: Expected: $expectedval Got: $gotval " |
| fail "$subdir/$srcfile output" |
| return |
| } |
| set output_lines [lrange $output_lines 1 end] |
| } |
| |
| pass "$subdir/$srcfile output" |
| } |