bpo-31234: Join threads in tests (#3572) · python/cpython@18e95b4 (original) (raw)

4 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -772,6 +772,7 @@ def notification():
772 772 t.start()
773 773
774 774 self.assertEqual(f1.result(timeout=5), 42)
775 +t.join()
775 776
776 777 def test_result_with_cancel(self):
777 778 # TODO(brian@sweetapp.com): This test is timing dependent.
@@ -785,6 +786,7 @@ def notification():
785 786 t.start()
786 787
787 788 self.assertRaises(futures.CancelledError, f1.result, timeout=5)
789 +t.join()
788 790
789 791 def test_exception_with_timeout(self):
790 792 self.assertRaises(futures.TimeoutError,
@@ -813,6 +815,7 @@ def notification():
813 815 t.start()
814 816
815 817 self.assertTrue(isinstance(f1.exception(timeout=5), OSError))
818 +t.join()
816 819
817 820 @test.support.reap_threads
818 821 def test_main():
Original file line number Diff line number Diff line change
@@ -1618,6 +1618,9 @@ def test_threading(self):
1618 1618 for sig in Signals[self.decimal]:
1619 1619 self.assertFalse(DefaultContext.flags[sig])
1620 1620
1621 +th1.join()
1622 +th2.join()
1623 +
1621 1624 DefaultContext.prec = save_prec
1622 1625 DefaultContext.Emax = save_emax
1623 1626 DefaultContext.Emin = save_emin
Original file line number Diff line number Diff line change
@@ -611,7 +611,9 @@ def setUp(self):
611 611 self.sock.settimeout(15)
612 612 self.port = support.bind_port(self.sock)
613 613 servargs = (self.evt, self.respdata, self.sock)
614 -threading.Thread(target=server, args=servargs).start()
614 +thread = threading.Thread(target=server, args=servargs)
615 +thread.start()
616 +self.addCleanup(thread.join)
615 617 self.evt.wait()
616 618 self.evt.clear()
617 619
Original file line number Diff line number Diff line change
@@ -755,7 +755,9 @@ def setUp(self):
755 755 self.evt = threading.Event()
756 756 # start server thread to handle requests
757 757 serv_args = (self.evt, self.request_count, self.requestHandler)
758 -threading.Thread(target=self.threadFunc, args=serv_args).start()
758 +thread = threading.Thread(target=self.threadFunc, args=serv_args)
759 +thread.start()
760 +self.addCleanup(thread.join)
759 761
760 762 # wait for the server to be ready
761 763 self.evt.wait()
@@ -1206,7 +1208,9 @@ def setUp(self):
1206 1208 self.evt = threading.Event()
1207 1209 # start server thread to handle requests
1208 1210 serv_args = (self.evt, 1)
1209 -threading.Thread(target=http_server, args=serv_args).start()
1211 +thread = threading.Thread(target=http_server, args=serv_args)
1212 +thread.start()
1213 +self.addCleanup(thread.join)
1210 1214
1211 1215 # wait for the server to be ready
1212 1216 self.evt.wait()