Hi, I found a problem in the dejagnu testsuite, with process_test.
If there is a problem running a .test file, then process_test is silent about it.
This minimal demonstrator patch adds basic reporting if there is a problem, by checking that at least a single clause in the expect command triggered. Using this patch we're able to demonstrate that there are problems in target.test and remote.test.
Thanks, - Tom
Check if test has reportable output in process_test Result: ... Running target unix Using ../src/testsuite/config/default.exp as tool-and-target-specific interface file. Running ../src/testsuite/libdejagnu/tunit.exp ... Running ../src/testsuite/runtest.all/libs.exp ... ERROR: ../src/testsuite/runtest.all/target.test gives no reportable output ERROR: ../src/testsuite/runtest.all/remote.test gives no reportable output Running ../src/testsuite/runtest.all/load_lib.exp ... Running ../src/testsuite/runtest.all/options.exp ... Running ../src/testsuite/runtest.all/stats-sub.exp ... Running ../src/testsuite/runtest.all/stats.exp ... ... 2017-06-03 Tom de Vries <t...@codesourcery.com> * testsuite/runtest.all/libs.exp (process_test): Check if test has reportable output. --- testsuite/runtest.all/libs.exp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/testsuite/runtest.all/libs.exp b/testsuite/runtest.all/libs.exp index 7520e12..c201258 100644 --- a/testsuite/runtest.all/libs.exp +++ b/testsuite/runtest.all/libs.exp @@ -31,40 +31,52 @@ proc process_test { test } { if [file exists $test] { verbose "Processing test $test" 2 + set n 0 spawn -open [open "|$EXPECT $test $srcdir $subdir [pwd]" r] expect { "No such file or directory" { perror "$test wouldn't run" 0 + set n [expr $n + 1] } -re "\[\r\n\]*NOTSUPPORTED: $text\[\r\n\]*" { unsupported "[lrange $expect_out(0,string) 1 end]" + set n [expr $n + 1] exp_continue } -re "\[\r\n\]*NOTTESTED: $text\[\r\n\]*" { untested "[lrange $expect_out(0,string) 1 end]" + set n [expr $n + 1] exp_continue } -re "\[\r\n\]*PASSED: $text\[\r\n\]*" { pass "[lrange $expect_out(0,string) 1 end]" + set n [expr $n + 1] exp_continue } -re "\[\r\n\]*FAILED: $text\[\r\n\]*" { fail "[lrange $expect_out(0,string) 1 end]" + set n [expr $n + 1] exp_continue } -re "\[\r\n\]*WARNED: $text\[\r\n\]*" { verbose "$expect_out(0,string)" 2 + set n [expr $n + 1] exp_continue } -re "\[\r\n\]*ERRORED: $text\[\r\n\]*" { verbose "$expect_out(0,string)" 2 + set n [expr $n + 1] exp_continue } timeout { perror "$test timed out" 0 + set n [expr $n + 1] exp_continue } eof { + if { $n == 0 } { + perror "$test gives no reportable output" 0 + } verbose "All Done" 3 } }
_______________________________________________ DejaGnu mailing list DejaGnu@gnu.org https://lists.gnu.org/mailman/listinfo/dejagnu