From: Victor Stinner Date: Wed, 2 Oct 2019 23:04:09 +0000 (+0200) Subject: bpo-36670, regrtest: Fix WindowsLoadTracker() for partial line (GH-16550) X-Git-Tag: v3.9.0a1~274 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e04cd268ee9a57f95dc78d8974b21a6fac3f666;p=thirdparty%2FPython%2Fcpython.git bpo-36670, regrtest: Fix WindowsLoadTracker() for partial line (GH-16550) WindowsLoadTracker.read_output() now uses a short buffer for incomplete line. --- diff --git a/Lib/test/libregrtest/win_utils.py b/Lib/test/libregrtest/win_utils.py index f0c17b906f51..f802980c20b5 100644 --- a/Lib/test/libregrtest/win_utils.py +++ b/Lib/test/libregrtest/win_utils.py @@ -32,6 +32,7 @@ class WindowsLoadTracker(): def __init__(self): self.load = 0.0 self.counter_name = '' + self._buffer = b'' self.popen = None self.start() @@ -100,7 +101,9 @@ class WindowsLoadTracker(): if res != 0: return - output = overlapped.getbuffer() + # self._buffer stores an incomplete line + output = self._buffer + overlapped.getbuffer() + output, _, self._buffer = output.rpartition(b'\n') return output.decode('oem', 'replace') def getloadavg(self):