]> granicus.if.org Git - python/commitdiff
merge 79422b3684f1 in 3.3 branch (issue 10340)
authorGiampaolo Rodola' <g.rodola@gmail.com>
Thu, 22 Mar 2012 15:19:45 +0000 (16:19 +0100)
committerGiampaolo Rodola' <g.rodola@gmail.com>
Thu, 22 Mar 2012 15:19:45 +0000 (16:19 +0100)
1  2 
Lib/asyncore.py
Lib/test/test_asyncore.py

diff --cc Lib/asyncore.py
Simple merge
index 52dff0f4fa310334770ddb5f977386df543a47cc,507a8daa96e24905ef1143129b7b24a1647a361e..c1df785c80fbd365bab82976d60ef5880c3a6bb0
@@@ -778,27 -731,23 +779,42 @@@ class BaseTestAPI(unittest.TestCase)
          finally:
              sock.close()
  
+     @unittest.skipUnless(threading, 'Threading required for this test.')
+     @support.reap_threads
+     def test_quick_connect(self):
+         # see: http://bugs.python.org/issue10340
+         server = TCPServer()
+         t = threading.Thread(target=lambda: asyncore.loop(timeout=0.1, count=500))
+         t.start()
+         for x in range(20):
+             s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+             s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
+                          struct.pack('ii', 1, 0))
+             s.connect(server.address)
+             s.close()
  
 -class TestAPI_UseSelect(BaseTestAPI):
 +class TestAPI_UseIPv4Sockets(BaseTestAPI):
 +    family = socket.AF_INET
 +    addr = (HOST, 0)
 +
 +@unittest.skipUnless(support.IPV6_ENABLED, 'IPv6 support required')
 +class TestAPI_UseIPv6Sockets(BaseTestAPI):
 +    family = socket.AF_INET6
 +    addr = ('::1', 0)
 +
 +@unittest.skipUnless(HAS_UNIX_SOCKETS, 'Unix sockets required')
 +class TestAPI_UseUnixSockets(BaseTestAPI):
 +    if HAS_UNIX_SOCKETS:
 +        family = socket.AF_UNIX
 +    addr = support.TESTFN
 +
 +    def tearDown(self):
 +        unlink(self.addr)
 +        BaseTestAPI.tearDown(self)
 +
 +class TestAPI_UseIPv4Select(TestAPI_UseIPv4Sockets):
      use_poll = False
  
  @unittest.skipUnless(hasattr(select, 'poll'), 'select.poll required')