sim; testsuite: allow tests to set no output

If a test doesn't write anything at all to stdout, the current test
framework can't support that.  Even if you put a blank output line:
	# output:
the setup happily clobbers that with a default pass/fail string.

Tweak the parsing logic so we only set the output to pass/fail when
the test has no output marker.
This commit is contained in:
Mike Frysinger 2015-03-29 16:41:59 -04:00
parent 92fc6153a6
commit 744b9a190b
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2015-03-29 Mike Frysinger <vapier@gentoo.org>
* lib/sim-defs.exp (run_sim_test): Declare seen_output as 0. When
the test has an output keyword, set it to 1. Set default output only
when seen_output is 0.
2015-03-29 Mike Frysinger <vapier@gentoo.org>
* configure: Regenerate.

View File

@ -218,6 +218,7 @@ proc run_sim_test { name requested_machs } {
set opts(xerror) "no"
set opts(xfail) ""
set opts(kfail) ""
set seen_output 0
if ![info exists global_as_options] {
set global_as_options ""
@ -260,6 +261,7 @@ proc run_sim_test { name requested_machs } {
# Multiple "output" specifications concatenate, they don't override.
if { $opt_name == "output" } {
set opt_val "$opts(output)$opt_val"
set seen_output 1
}
# Similar with "xfail" and "kfail", but arguments are space-separated.
if { $opt_name == "xfail" || $opt_name == "kfail" } {
@ -276,7 +278,7 @@ proc run_sim_test { name requested_machs } {
set testname $name
set sourcefile $file
if { $opts(output) == "" } {
if { $seen_output == 0 } {
if { "$opts(xerror)" == "no" } {
set opts(output) "pass\n"
} else {