stable ordering of test output

Matt Harbison mharbison72 at gmail.com
Wed Apr 19 21:48:53 EDT 2017


On Wed, 19 Apr 2017 15:22:42 -0400, Augie Fackler <raf at durin42.com> wrote:

> On Sat, Apr 15, 2017 at 1:04 PM, Augie Fackler <raf at durin42.com> wrote:
>>
>>> On Apr 15, 2017, at 5:48 AM, Yuya Nishihara <yuya at tcha.org> wrote:
>>>
>>> On Thu, 13 Apr 2017 16:17:34 -0400, Augie Fackler wrote:
>>>> # HG changeset patch
>>>> # User Augie Fackler <augie at google.com>
>>>> # Date 1492114180 14400
>>>> #      Thu Apr 13 16:09:40 2017 -0400
>>>> # Node ID ec81fd7580f3e31aa92e8834ffbcf2a8e80e72e3
>>>> # Parent  35afb54dbb4df2975dbbf0e1525b98611f18ba85
>>>> sshpeer: try harder to snag stderr when stdout closes unexpectedly
>>>>
>>>> Resolves test failures on FreeBSD, but I'm not happy about the fix.
>>>>
>>>> diff --git a/mercurial/sshpeer.py b/mercurial/sshpeer.py
>>>> --- a/mercurial/sshpeer.py
>>>> +++ b/mercurial/sshpeer.py
>>>> @@ -110,9 +110,17 @@ class doublepipe(object):
>>>>             if mainready:
>>>>                 meth = getattr(self._main, methname)
>>>>                 if data is None:
>>>> -                    return meth()
>>>> +                    r = meth()
>>>>                 else:
>>>> -                    return meth(data)
>>>> +                    r = meth(data)
>>>> +                if not r and data != 0:
>>>
>>> I'm not sure what this condition is intended for. It's always true for
>>> write() because r is None and data is a str.
>>
>> This forwarder is also used for read(), where data is the number of  
>> bytes to be read. At least, I think that’s right, now I’m doubting  
>> myself.
>
> Should I go ahead and mail this patch? Perhaps with some extra
> comments? Or do people object to this fix?

+1.  We picked up another instance of this issue in the last few days,  
that this patch also fixes:

--- c:/Users/Matt/Projects/hg/tests/test-ssh-bundle1.t
+++ c:/Users/Matt/Projects/hg/tests/test-ssh-bundle1.t.err
@@ -555,8 +555,8 @@
    pulling from ssh://user@dummy/remote
    searching for changes
    adding changesets
-  remote: abort: this is an exercise
    transaction abort!
    rollback completed
    abort: stream ended unexpectedly (got 0 bytes, expected 4)
-  [255]
+  remote: abort: this is an exercise
+  [255]


More information about the Mercurial-devel mailing list