marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches.
REVISION SUMMARY Our ultimate goal is to add another way to define the connection needs to be closed. To do so, we need the "read" code to be more unified. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D12045 AFFECTED FILES tests/testlib/badserverext.py CHANGE DETAILS diff --git a/tests/testlib/badserverext.py b/tests/testlib/badserverext.py --- a/tests/testlib/badserverext.py +++ b/tests/testlib/badserverext.py @@ -157,32 +157,30 @@ bmethod = method.encode('ascii') func = getattr(orig, method) - # No read limit. Call original function. - if not remaining: - result = func(size) - obj._writelog( - b'%s(%d) -> (%d) %s' % (bmethod, size, len(result), result) - ) - return result + requested_size = size + actual_size = size + + if remaining: + if size < 0: + actual_size = remaining + else: + actual_size = min(remaining, requested_size) - origsize = size + result = func(actual_size) - if size < 0: - size = remaining + if remaining: + remaining -= len(result) + self.remaining_recv_bytes = remaining + + if requested_size == actual_size: + msg = b'%s(%d) -> (%d) %s' + msg %= (bmethod, requested_size, len(result), result) else: - size = min(remaining, size) - - result = func(size) - remaining -= len(result) + msg = b'%s(%d from %d) -> (%d) %s' + msg %= (bmethod, actual_size, requested_size, len(result), result) + obj._writelog(msg) - obj._writelog( - b'%s(%d from %d) -> (%d) %s' - % (bmethod, size, origsize, len(result), result) - ) - - self.remaining_recv_bytes = remaining - - if remaining <= 0: + if remaining is not None and remaining <= 0: obj._writelog(b'read limit reached; closing socket') obj._cond_close() To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel