diff options
Diffstat (limited to 'newlib/testsuite/lib')
-rw-r--r-- | newlib/testsuite/lib/passfail.exp | 57 |
1 files changed, 35 insertions, 22 deletions
diff --git a/newlib/testsuite/lib/passfail.exp b/newlib/testsuite/lib/passfail.exp index 8a44d274d..0a01f4816 100644 --- a/newlib/testsuite/lib/passfail.exp +++ b/newlib/testsuite/lib/passfail.exp @@ -4,36 +4,49 @@ # is freely granted, provided that this notice is preserved. # -# newlib_pass_fail compiles and runs all the source files in the test -# directory that are not included in the check_output_tests list. -# check_output_tests lists the sources' basenames. +# 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 { check_output_tests } { +proc newlib_pass_fail_all { flag exclude_list } { global srcdir objdir subdir runtests - foreach testcase [glob -nocomplain $srcdir/$subdir/*.c] { + 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 $testcase] then { + if ![runtest_file_p $runtests $srcfile] then { continue } - # Exclude tests which require their output to be checked - if {[lsearch $check_output_tests "[file tail $testcase]"] != -1} then { - continue + # Exclude tests listed in exclude_list. + if { $flag == "-x" } then { + if {[lsearch $exclude_list "$srcfile"] != -1} then { + continue + } } + newlib_pass_fail "$srcfile" + } +} - set test_driver "$objdir/testsuite/[file tail [file rootname $testcase].x]" - - set comp_output [newlib_target_compile "$testcase" "$test_driver" "executable" ""] - - if { $comp_output != "" } { - fail "Failed to compile $testcase.\n" - fail "$testcase" - } else { - pass "Compiled $testcase.\n" - set result [newlib_load $test_driver ""] - set status [lindex $result 0] - $status "$testcase" - } +# newlib_pass_fail takes the basename of a test source file, which it +# compiles and runs. + +proc newlib_pass_fail { srcfile } { + global srcdir objdir subdir + + set fullsrcfile "$srcdir/$subdir/$srcfile" + + set test_driver "$objdir/testsuite/[file rootname $srcfile].x" + + set comp_output [newlib_target_compile "$fullsrcfile" "$test_driver" "executable" ""] + + if { $comp_output != "" } { + fail "Failed to compile $fullsrcfile.\n" + fail "$fullsrcfile" + } else { + pass "Compiled $fullsrcfile.\n" + set result [newlib_load $test_driver ""] + set status [lindex $result 0] + $status "$fullsrcfile" } } |