summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2008-02-23 15:06:25 (GMT)
committerGeorg Brandl <georg@python.org>2008-02-23 15:06:25 (GMT)
commit57826cf9f8c1d75da8d7d0e27f564adb441329ad (patch)
treeb4c14616f442521f48f5ffa7c298630aeb87d86b
parent1647923bbf2a0257eefe5f4bbc44bd11e0d63659 (diff)
downloadcpython-57826cf9f8c1d75da8d7d0e27f564adb441329ad.zip
cpython-57826cf9f8c1d75da8d7d0e27f564adb441329ad.tar.gz
cpython-57826cf9f8c1d75da8d7d0e27f564adb441329ad.tar.bz2
#2165: fix test_logging failure on some machines.
-rw-r--r--Lib/test/test_logging.py36
1 files changed, 13 insertions, 23 deletions
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index fa0a09e..1ed6cb2 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -2009,7 +2009,7 @@ class LogRecordSocketReceiver(ThreadingTCPServer):
port=logging.handlers.DEFAULT_TCP_LOGGING_PORT,
handler=LogRecordStreamHandler):
ThreadingTCPServer.__init__(self, (host, port), handler)
- self.abort = 0
+ self.abort = False
self.timeout = 1
def serve_until_stopped(self):
@@ -2018,11 +2018,11 @@ class LogRecordSocketReceiver(ThreadingTCPServer):
self.timeout)
if rd:
self.handle_request()
+ socketDataProcessed.set()
# close the listen socket
self.server_close()
def process_request(self, request, client_address):
- #import threading
t = threading.Thread(target = self.finish_request,
args = (request, client_address))
t.start()
@@ -2107,28 +2107,18 @@ def test_main_inner():
rootLogger = logging.getLogger("")
rootLogger.setLevel(logging.DEBUG)
- # Find an unused port number
- port = logging.handlers.DEFAULT_TCP_LOGGING_PORT
- while port < logging.handlers.DEFAULT_TCP_LOGGING_PORT+100:
- try:
- tcpserver = LogRecordSocketReceiver(port=port)
- except socket.error:
- port += 1
- else:
- break
- else:
- raise ImportError, "Could not find unused port"
-
-
- #Set up a handler such that all events are sent via a socket to the log
- #receiver (logrecv).
- #The handler will only be added to the rootLogger for some of the tests
+ tcpserver = LogRecordSocketReceiver(port=0)
+ port = tcpserver.socket.getsockname()[1]
+
+ # Set up a handler such that all events are sent via a socket to the log
+ # receiver (logrecv).
+ # The handler will only be added to the rootLogger for some of the tests
shdlr = logging.handlers.SocketHandler('localhost', port)
rootLogger.addHandler(shdlr)
- #Configure the logger for logrecv so events do not propagate beyond it.
- #The sockLogger output is buffered in memory until the end of the test,
- #and printed at the end.
+ # Configure the logger for logrecv so events do not propagate beyond it.
+ # The sockLogger output is buffered in memory until the end of the test,
+ # and printed at the end.
sockOut = cStringIO.StringIO()
sockLogger = logging.getLogger("logrecv")
sockLogger.setLevel(logging.DEBUG)
@@ -2157,9 +2147,9 @@ def test_main_inner():
finally:
#wait for TCP receiver to terminate
-# socketDataProcessed.wait()
+ socketDataProcessed.wait()
# ensure the server dies
- tcpserver.abort = 1
+ tcpserver.abort = True
for thread in threads:
thread.join(2.0)
print(sockOut.getvalue())