[PATCH 2 of 3] run-tests: defer leftover (?) cleanup until after all output is exhausted
Gregory Szorc
gregory.szorc at gmail.com
Mon Feb 29 16:04:46 EST 2016
Thank you for tracking this down!
> On Feb 28, 2016, at 22:14, Matt Harbison <mharbison72 at gmail.com> wrote:
>
> # HG changeset patch
> # User Matt Harbison <matt_harbison at yahoo.com>
> # Date 1456719688 18000
> # Sun Feb 28 23:21:28 2016 -0500
> # Node ID 7afd6d67701e7057883895324647facd50ff8db8
> # Parent ceb7ce2df958755ffc5c9f0c98d13de991f6b192
> 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
>
> diff --git a/tests/run-tests.py b/tests/run-tests.py
> --- 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
> + postout.append(b' ' + el)
>
> if lcmd:
> # Add on last return code.
> diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
> --- a/tests/test-run-tests.t
> +++ b/tests/test-run-tests.t
> @@ -52,6 +52,12 @@
>> never happens (?)
>> xyzzy
>> nor this (?)
> + > $ printf 'abc\ndef\nxyz\n'
> + > 123 (?)
> + > abc
> + > def (?)
> + > 456 (?)
> + > xyz
>> EOF
>
> $ rt
> @@ -286,6 +292,12 @@
> xyzzy
> + echo *SALT* 6 0 (glob)
> *SALT* 6 0 (glob)
> + + printf 'abc\ndef\nxyz\n'
> + abc
> + def
> + xyz
> + + echo *SALT* 12 0 (glob)
> + *SALT* 12 0 (glob)
> .
> # Ran 2 tests, 0 skipped, 0 warned, 0 failed.
>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list