[Python-checkins] r54682 - python/trunk/Lib/test/test_socketserver.py
guido.van.rossum
python-checkins at python.org
Wed Apr 4 19:43:06 CEST 2007
Author: guido.van.rossum
Date: Wed Apr 4 19:43:02 2007
New Revision: 54682
Modified:
python/trunk/Lib/test/test_socketserver.py
Log:
Fix a race condition in this test -- instead of assuming that it will take
the test server thread at most 0.5 seconds to get ready, use an event
variable.
Modified: python/trunk/Lib/test/test_socketserver.py
==============================================================================
--- python/trunk/Lib/test/test_socketserver.py (original)
+++ python/trunk/Lib/test/test_socketserver.py Wed Apr 4 19:43:02 2007
@@ -74,6 +74,7 @@
self.__addr = addr
self.__svrcls = svrcls
self.__hdlrcls = hdlrcls
+ self.ready = threading.Event()
def run(self):
class svrcls(MyMixinServer, self.__svrcls):
pass
@@ -87,6 +88,7 @@
if self.__addr != svr.socket.getsockname():
raise RuntimeError('server_address was %s, expected %s' %
(self.__addr, svr.socket.getsockname()))
+ self.ready.set()
if verbose: print "thread: serving three times"
svr.serve_a_few()
if verbose: print "thread: done"
@@ -139,7 +141,9 @@
t.start()
if verbose: print "server running"
for i in range(NREQ):
- time.sleep(DELAY)
+ t.ready.wait(10*DELAY)
+ if not t.ready.isSet():
+ raise RuntimeError("Server not ready within a reasonable time")
if verbose: print "test client", i
testfunc(proto, addr)
if verbose: print "waiting for server"
More information about the Python-checkins
mailing list