Mercurial > public > mercurial-scm > hg
diff tests/run-tests.py @ 28317:8de70574be2c
run-tests: defer leftover (?) cleanup until after all output is exhausted
Previously, after matching a single line, any contiguous subsequent lines ending
with (?) would be added to the output and removed from the expected output.
This is a problem if the subsequent test output would have matched the consumed
(?) line, because it kept the optional line and then added a duplicate without
the (?) [1]. Instead, wait until there is nothing more to match before handling
the leftovers.
[1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-February/080197.html
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 28 Feb 2016 23:21:28 -0500 |
parents | 0fe00bdb2f4f |
children | 98a1a9547bb1 |
line wrap: on
line diff
--- a/tests/run-tests.py Sun Feb 28 23:16:30 2016 -0500 +++ b/tests/run-tests.py Sun Feb 28 23:21:28 2016 -0500 @@ -1138,14 +1138,13 @@ elif warnonly == 1: # Is "not yet" and line is warn only. warnonly = 2 # Yes do warn. break - - # clean up any optional leftovers - while expected.get(pos, None): - el = expected[pos].pop(0) - if not el.endswith(b" (?)\n"): - expected[pos].insert(0, el) - break - postout.append(b' ' + el) + else: + # clean up any optional leftovers + while expected.get(pos, None): + el = expected[pos].pop(0) + if el and not el.endswith(b" (?)\n"): + break + postout.append(b' ' + el) if lcmd: # Add on last return code.