| # 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_pass_fail_all compiles and runs all the source files in the |
| # test directory. If flag is -x, then the sources whose basenames are |
| # listed in exclude_list are not compiled and run. |
| |
| proc newlib_pass_fail_all { flag exclude_list } { |
| global srcdir objdir subdir runtests |
| |
| foreach fullsrcfile [glob -nocomplain $srcdir/$subdir/*.c] { |
| set srcfile "[file tail $fullsrcfile]" |
| # If we're only testing specific files and this isn't one of them, skip it. |
| if ![runtest_file_p $runtests $srcfile] then { |
| continue |
| } |
| |
| # Exclude tests listed in exclude_list. |
| if { $flag == "-x" } then { |
| if {[lsearch $exclude_list "$srcfile"] != -1} then { |
| continue |
| } |
| } |
| newlib_pass_fail "$srcfile" |
| } |
| } |
| |
| # newlib_pass_fail takes the basename of a test source file, which it |
| # compiles and runs. |
| |
| proc newlib_pass_fail { srcfile } { |
| global srcdir tmpdir subdir |
| |
| set fullsrcfile "$srcdir/$subdir/$srcfile" |
| |
| set test_driver "$tmpdir/[file rootname $srcfile].x" |
| |
| set comp_output [newlib_target_compile "$fullsrcfile" "$test_driver" "executable" ""] |
| |
| if { $comp_output != "" } { |
| fail "$subdir/$srcfile compilation" |
| unresolved "$subdir/$srcfile execution" |
| } else { |
| pass "$subdir/$srcfile compilation" |
| set result [newlib_load $test_driver ""] |
| set status [lindex $result 0] |
| $status "$subdir/$srcfile execution" |
| } |
| } |