bpo-30845: Enhance test_concurrent_futures cleanup (#2564)

* bpo-30845: reap_children() now logs warnings

* bpo-30845: Enhance test_concurrent_futures cleanup

In setUp() and tearDown() methods of test_concurrent_futures tests,
make sure that tests don't leak threads nor processes. Clear
explicitly the reference to the executor to make it that it's
destroyed (to prevent "dangling threads" warning).
This commit is contained in:
Victor Stinner 2017-07-04 13:14:04 +02:00 committed by GitHub
parent 48350412b7
commit 3df9dec425
2 changed files with 9 additions and 1 deletions

View file

@ -63,6 +63,8 @@ class ExecutorMixin:
worker_count = 5
def setUp(self):
self._thread_cleanup = test.support.threading_setup()
self.t1 = time.time()
try:
self.executor = self.executor_type(max_workers=self.worker_count)
@ -72,11 +74,16 @@ class ExecutorMixin:
def tearDown(self):
self.executor.shutdown(wait=True)
self.executor = None
dt = time.time() - self.t1
if test.support.verbose:
print("%.2fs" % dt, end=' ')
self.assertLess(dt, 60, "synchronization issue: test lasted too long")
test.support.threading_cleanup(*self._thread_cleanup)
test.support.reap_children()
def _prime_executor(self):
# Make sure that the executor is ready to do work before running the
# tests. This should reduce the probability of timeouts in the tests.