[PATCH 2 of 3] run-tests: defer leftover (?) cleanup until after all output is exhausted
Yuya Nishihara
yuya at tcha.org
Wed Mar 2 08:15:57 EST 2016
On Tue, 01 Mar 2016 22:14:32 -0500, Matt Harbison wrote:
> On Tue, 01 Mar 2016 10:49:39 -0500, Yuya Nishihara <yuya at tcha.org> wrote:
> > On Mon, 29 Feb 2016 01:14:28 -0500, Matt Harbison wrote:
> >> --- a/tests/run-tests.py
> >> +++ b/tests/run-tests.py
> >> @@ -1137,14 +1137,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
> >
> > Noob question: can we drop unmatched "el" here? Previously we did push
> > back it.
>
> I think it is OK, but I don't have a good understanding of this myself. I
> can't get it to fail with this code + push back, or the old code without
> it. So it's not clear what purpose it served.
>
> It appears that 'expected' is a dict of lists, and each list is lines of
> expected output for one command in the test. After this loop, the 'pos'
> value is modified, so the current list is not examined again, unless lcmd
> is None somehow.
Seems legit to drop insert(). Queued this version, thanks.
> I can put it back if you want, since it doesn't seem to affect anything
> one way or the other.
>
> >> + + printf 'abc\ndef\nxyz\n'
> >
> > With Debian dash, quotes are removed.
> >
> > *SALT* 6 0 (glob)
> > - + printf 'abc\ndef\nxyz\n'
> > + + printf abc\ndef\nxyz\n
> > abc
>
> Is dash happy with it globbed away? It doesn't print correctly (on
> Windows anyway) without quoting of some kind.
Sure, (glob) is processed by the test runner. I've changed that line as follows:
+ printf *abc\ndef\nxyz\n* (glob)
More information about the Mercurial-devel
mailing list