aboutsummaryrefslogtreecommitdiff
path: root/newlib/testsuite/lib/passfail.exp
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/testsuite/lib/passfail.exp')
-rw-r--r--newlib/testsuite/lib/passfail.exp39
1 files changed, 39 insertions, 0 deletions
diff --git a/newlib/testsuite/lib/passfail.exp b/newlib/testsuite/lib/passfail.exp
new file mode 100644
index 0000000..8a44d27
--- /dev/null
+++ b/newlib/testsuite/lib/passfail.exp
@@ -0,0 +1,39 @@
+# 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 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.
+
+proc newlib_pass_fail { check_output_tests } {
+ global srcdir objdir subdir runtests
+
+ foreach testcase [glob -nocomplain $srcdir/$subdir/*.c] {
+ # If we're only testing specific files and this isn't one of them, skip it.
+ if ![runtest_file_p $runtests $testcase] then {
+ continue
+ }
+
+ # Exclude tests which require their output to be checked
+ if {[lsearch $check_output_tests "[file tail $testcase]"] != -1} then {
+ continue
+ }
+
+ 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"
+ }
+ }
+}