From 2c1c2ca2548f943d6323859f17612aa5a4a19165 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 15 Sep 2017 16:55:47 -0700 Subject: [3.6] bpo-31234: Join threads in tests (#3589) * bpo-31234: Join threads in tests (#3572) Call thread.join() on threads to prevent the "dangling threads" warning. (cherry picked from commit 18e95b4176256f100429a806d0455406df98f984) * bpo-31234: Join threads in test_hashlib (#3573) * bpo-31234: Join threads in test_hashlib Use thread.join() to wait until the parallel hash tasks complete rather than using events. Calling thread.join() prevent "dangling thread" warnings. * test_hashlib: minor PEP 8 coding style fixes (cherry picked from commit 8dcf22f442320e4c1a5408e67b4c9002ad105f17) * bpo-31234: Join threads in test_threading (#3579) Call thread.join() to prevent the "dangling thread" warning. (cherry picked from commit b8c7be2c523b012e57915182543d06657161057f) * bpo-31234: Join threads in test_queue (#3586) Call thread.join() to prevent the "dangling thread" warning. (cherry picked from commit 167cbde50a88ec2a7d26b2cb9891d5e32bdfbfb5) * bpo-31234: Join timers in test_threading (#3598) Call the .join() method of threading.Timer timers to prevent the "threading_cleanup() failed to cleanup 1 threads" warning. (cherry picked from commit da3e5cf961f9bcc4bb376386cfe7a2865325086c) --- Lib/test/test_threading.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'Lib/test/test_threading.py') diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index 162a72ea03..9cadc0f1c0 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -575,6 +575,7 @@ class ThreadTests(BaseTestCase): self.assertFalse(t.is_alive()) # And verify the thread disposed of _tstate_lock. self.assertIsNone(t._tstate_lock) + t.join() def test_repr_stopped(self): # Verify that "stopped" shows up in repr(Thread) appropriately. @@ -601,6 +602,7 @@ class ThreadTests(BaseTestCase): break time.sleep(0.01) self.assertIn(LOOKING_FOR, repr(t)) # we waited at least 5 seconds + t.join() def test_BoundedSemaphore_limit(self): # BoundedSemaphore should raise ValueError if released too often. @@ -915,6 +917,7 @@ class ThreadingExceptionTests(BaseTestCase): thread = threading.Thread() thread.start() self.assertRaises(RuntimeError, thread.start) + thread.join() def test_joining_current_thread(self): current_thread = threading.current_thread() @@ -928,6 +931,7 @@ class ThreadingExceptionTests(BaseTestCase): thread = threading.Thread() thread.start() self.assertRaises(RuntimeError, setattr, thread, "daemon", True) + thread.join() def test_releasing_unacquired_lock(self): lock = threading.Lock() @@ -1090,6 +1094,8 @@ class TimerTests(BaseTestCase): self.callback_event.wait() self.assertEqual(len(self.callback_args), 2) self.assertEqual(self.callback_args, [((), {}), ((), {})]) + timer1.join() + timer2.join() def _callback_spy(self, *args, **kwargs): self.callback_args.append((args[:], kwargs.copy())) -- cgit v1.2.1