From 79ebf598221efb7be14957ffc8a5cfc032d1bb47 Mon Sep 17 00:00:00 2001 From: "antoine.pitrou" Date: Tue, 27 Oct 2009 18:36:47 +0000 Subject: [PATCH] Suppress transient refleaks in test_asyncore git-svn-id: http://svn.python.org/projects/python/trunk@75826 6015fed2-1504-0410-9fe1-9d1591cc4771 --- Lib/test/test_asyncore.py | 54 +++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py index ce835aa36c..1a54ce5da7 100644 --- a/Lib/test/test_asyncore.py +++ b/Lib/test/test_asyncore.py @@ -319,40 +319,44 @@ class DispatcherWithSendTests(unittest.TestCase): def tearDown(self): asyncore.close_all() + @test_support.reap_threads def test_send(self): - self.evt = threading.Event() - self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - self.sock.settimeout(3) - self.port = test_support.bind_port(self.sock) + evt = threading.Event() + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.settimeout(3) + port = test_support.bind_port(sock) cap = StringIO() - args = (self.evt, cap, self.sock) - threading.Thread(target=capture_server, args=args).start() - - # wait a little longer for the server to initialize (it sometimes - # refuses connections on slow machines without this wait) - time.sleep(0.2) + args = (evt, cap, sock) + t = threading.Thread(target=capture_server, args=args) + t.start() + try: + # wait a little longer for the server to initialize (it sometimes + # refuses connections on slow machines without this wait) + time.sleep(0.2) - data = "Suppose there isn't a 16-ton weight?" - d = dispatcherwithsend_noread() - d.create_socket(socket.AF_INET, socket.SOCK_STREAM) - d.connect((HOST, self.port)) + data = "Suppose there isn't a 16-ton weight?" + d = dispatcherwithsend_noread() + d.create_socket(socket.AF_INET, socket.SOCK_STREAM) + d.connect((HOST, port)) - # give time for socket to connect - time.sleep(0.1) + # give time for socket to connect + time.sleep(0.1) - d.send(data) - d.send(data) - d.send('\n') + d.send(data) + d.send(data) + d.send('\n') - n = 1000 - while d.out_buffer and n > 0: - asyncore.poll() - n -= 1 + n = 1000 + while d.out_buffer and n > 0: + asyncore.poll() + n -= 1 - self.evt.wait() + evt.wait() - self.assertEqual(cap.getvalue(), data*2) + self.assertEqual(cap.getvalue(), data*2) + finally: + t.join() class DispatcherWithSendTests_UsePoll(DispatcherWithSendTests): -- 2.11.4.GIT