]> granicus.if.org Git - python/commitdiff
bpo-30106: Fix test_asyncore.test_quick_connect() (#1234)
authorVictor Stinner <victor.stinner@gmail.com>
Fri, 21 Apr 2017 11:51:53 +0000 (13:51 +0200)
committerGitHub <noreply@github.com>
Fri, 21 Apr 2017 11:51:53 +0000 (13:51 +0200)
test_quick_connect() runs a thread up to 50 seconds, whereas the
socket is connected in 0.2 second and then the thread is expected to
end in less than 3 second. On Linux, the thread ends quickly because
select() seems to always return quickly. On FreeBSD, sometimes
select() fails with timeout and so the thread runs much longer than
expected.

Fix the thread timeout to fix a race condition in the test.

Lib/test/test_asyncore.py

index 1e276ec58b9f76f364e5d6164747442bb0e78aa5..dc2f716e0bb828202ed97c025059cba8edb635cb 100644 (file)
@@ -781,8 +781,9 @@ class BaseTestAPI:
             self.skipTest("test specific to AF_INET and AF_INET6")
 
         server = BaseServer(self.family, self.addr)
+        # run the thread 500 ms: the socket should be connected in 200 ms
         t = threading.Thread(target=lambda: asyncore.loop(timeout=0.1,
-                                                          count=500))
+                                                          count=5))
         t.start()
         try:
             with socket.socket(self.family, socket.SOCK_STREAM) as s: