Mercurial > hg-stable
changeset 20601:72d843e8cb6d
run-tests: fixed warn detection on failures with too many output
The state "warned" was reported too often. The problem fixed here is that
warnonly was only reset when a line did not match. When there was a line too
much, warnonly remained set.
Fix this by setting more states to warnonly.
More negative testing (testing on result "Failed") has been done this time.
author | Simon Heimberg <simohe@besonet.ch> |
---|---|
date | Sun, 16 Feb 2014 23:41:24 +0100 |
parents | 2e68882852ee |
children | 8a2dfac89ad6 |
files | tests/run-tests.py |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/run-tests.py Sun Feb 16 23:36:02 2014 +0100 +++ b/tests/run-tests.py Sun Feb 16 23:41:24 2014 +0100 @@ -776,7 +776,9 @@ # Merge the script output back into a unified test - warnonly = True + warnonly = 1 # 1: not yet, 2: yes, 3: for sure not + if exitcode != 0: # failure has been reported + warnonly = 3 # set to "for sure not" pos = -1 postout = [] for l in output: @@ -811,7 +813,9 @@ lout = stringescape(lout.rstrip('\n')) + " (esc)\n" postout.append(" " + lout) # let diff deal with it if r != '': # if line failed - warnonly = False + warnonly = 3 # set to "for sure not" + elif warnonly == 1: # is "not yet" (and line is warn only) + warnonly = 2 # set to "yes" do warn if lcmd: # add on last return code @@ -826,8 +830,8 @@ if pos in after: postout += after.pop(pos) - if warnonly and exitcode == 0: - exitcode = False + if warnonly == 2: + exitcode = False # set exitcode to warned return exitcode, postout wifexited = getattr(os, "WIFEXITED", lambda x: False)