From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Wed, 3 Jul 2019 09:36:13 +0000 (-0700) Subject: bpo-37421: test_concurrent_futures cleans up multiprocessing (GH-14563) X-Git-Tag: v3.8.0b2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=79665c698fb8f97475e03c4231067db1ae47addb;p=thirdparty%2FPython%2Fcpython.git bpo-37421: test_concurrent_futures cleans up multiprocessing (GH-14563) test_concurrent_futures now cleans up multiprocessing to remove immediately temporary directories created by multiprocessing.util.get_temp_dir(). The test now uses setUpModule() and tearDownModule(). (cherry picked from commit 684cb47fffb7af3ac50cb077f6d2a095c9ce20b4) Co-authored-by: Victor Stinner --- diff --git a/Lib/test/test_concurrent_futures.py b/Lib/test/test_concurrent_futures.py index b27ae7194822..fa298207f6c5 100644 --- a/Lib/test/test_concurrent_futures.py +++ b/Lib/test/test_concurrent_futures.py @@ -27,6 +27,9 @@ from concurrent.futures._base import ( from concurrent.futures.process import BrokenProcessPool from multiprocessing import get_context +import multiprocessing.process +import multiprocessing.util + def create_future(state=PENDING, exception=None, result=None): f = Future() @@ -1294,12 +1297,24 @@ class FutureTests(BaseTestCase): self.assertEqual(f.exception(), e) -@test.support.reap_threads -def test_main(): - try: - test.support.run_unittest(__name__) - finally: - test.support.reap_children() +_threads_key = None + +def setUpModule(): + global _threads_key + _threads_key = test.support.threading_setup() + + +def tearDownModule(): + test.support.threading_cleanup(*_threads_key) + test.support.reap_children() + + # cleanup multiprocessing + multiprocessing.process._cleanup() + # bpo-37421: Explicitly call _run_finalizers() to remove immediately + # temporary directories created by multiprocessing.util.get_temp_dir(). + multiprocessing.util._run_finalizers() + test.support.gc_collect() + if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst b/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst new file mode 100644 index 000000000000..215a0a144459 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2019-07-02-23-29-06.bpo-37421.WEfc5A.rst @@ -0,0 +1,2 @@ +test_concurrent_futures now cleans up multiprocessing to remove immediately +temporary directories created by multiprocessing.util.get_temp_dir().