From ba980db797892e771e9d66e9bd0468cdd2c73115 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Mon, 23 May 2011 21:37:54 +0100 Subject: Issue #12151: Added diagnostics to help diagnose intermittent socket errors. --- Lib/test/test_logging.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 3118065..6c66ff1 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -893,14 +893,29 @@ if threading: def handle(self): self.server._handler(self) + + def finish(self): + data = self.wfile.getvalue() + try: + super(DelegatingUDPRequestHandler, self).finish() + except socket.error: + msg = ('Error during finish, while sending %r, ' + 'closed = %s') + print(msg % (data, self._closed), file=sys.stderr) + raise + ThreadingUDPServer.__init__(self, addr, DelegatingUDPRequestHandler, bind_and_activate) ControlMixin.__init__(self, handler, poll_interval) + self._closed = False def server_bind(self): super(TestUDPServer, self).server_bind() self.port = self.socket.getsockname()[1] + def server_close(self): + super(TestUDPServer, self).server_close() + self._closed = True # - end of server_helper section -- cgit v0.12 From acd902be6466729ffc2f2cece9bf5e945d64619b Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Mon, 23 May 2011 21:49:09 +0100 Subject: Issue #12151: Correction to diagnostic code. --- Lib/test/test_logging.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 6c66ff1..8166b33 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -901,7 +901,7 @@ if threading: except socket.error: msg = ('Error during finish, while sending %r, ' 'closed = %s') - print(msg % (data, self._closed), file=sys.stderr) + print(msg % (data, self.server._closed), file=sys.stderr) raise ThreadingUDPServer.__init__(self, addr, DelegatingUDPRequestHandler, -- cgit v0.12 From a2a895c46c8e838a29308dd0da7ab1d364ff4495 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 23 May 2011 23:14:05 +0200 Subject: Issue #12074: regrtest displays also the current number of failures --- Lib/test/regrtest.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index e2e3765..a8726b5 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -580,9 +580,11 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, if test is None: finished += 1 continue + accumulate_result(test, result) if not quiet: - print("[{1:{0}}{2}] {3}".format( - test_count_width, test_index, test_count, test)) + print("[{1:{0}}{2}/{3}] {4}".format( + test_count_width, test_index, test_count, + len(bad), test)) if stdout: print(stdout) if stderr: @@ -590,7 +592,6 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, if result[0] == INTERRUPTED: assert result[1] == 'KeyboardInterrupt' raise KeyboardInterrupt # What else? - accumulate_result(test, result) test_index += 1 except KeyboardInterrupt: interrupted = True @@ -600,8 +601,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, else: for test_index, test in enumerate(tests, 1): if not quiet: - print("[{1:{0}}{2}] {3}".format( - test_count_width, test_index, test_count, test)) + print("[{1:{0}}{2}/{3}] {4}".format( + test_count_width, test_index, test_count, len(bad), test)) sys.stdout.flush() if trace: # If we're tracing code coverage, then we don't exit with status -- cgit v0.12