mirror of
https://github.com/python/cpython
synced 2024-10-14 10:18:12 +00:00
gh-71052: Enable test_concurrent_futures on platforms that lack multiprocessing (gh-115917)
Enable test_concurrent_futures on platforms that support threading but not multiprocessing.
This commit is contained in:
parent
c40b5b97fd
commit
4827968af8
|
@ -20,8 +20,6 @@
|
||||||
|
|
||||||
from queue import Empty, Full
|
from queue import Empty, Full
|
||||||
|
|
||||||
import _multiprocessing
|
|
||||||
|
|
||||||
from . import connection
|
from . import connection
|
||||||
from . import context
|
from . import context
|
||||||
_ForkingPickler = context.reduction.ForkingPickler
|
_ForkingPickler = context.reduction.ForkingPickler
|
||||||
|
|
|
@ -5,11 +5,6 @@
|
||||||
import sys
|
import sys
|
||||||
import types
|
import types
|
||||||
|
|
||||||
try:
|
|
||||||
import _multiprocessing
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
_multiprocessing = None
|
|
||||||
|
|
||||||
|
|
||||||
if support.check_sanitizer(address=True, memory=True):
|
if support.check_sanitizer(address=True, memory=True):
|
||||||
SKIP_MODULES = frozenset((
|
SKIP_MODULES = frozenset((
|
||||||
|
@ -36,17 +31,6 @@ class FailedImport(RuntimeError):
|
||||||
|
|
||||||
class AllTest(unittest.TestCase):
|
class AllTest(unittest.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
# concurrent.futures uses a __getattr__ hook. Its __all__ triggers
|
|
||||||
# import of a submodule, which fails when _multiprocessing is not
|
|
||||||
# available.
|
|
||||||
if _multiprocessing is None:
|
|
||||||
sys.modules["_multiprocessing"] = types.ModuleType("_multiprocessing")
|
|
||||||
|
|
||||||
def tearDown(self):
|
|
||||||
if _multiprocessing is None:
|
|
||||||
sys.modules.pop("_multiprocessing")
|
|
||||||
|
|
||||||
def check_all(self, modname):
|
def check_all(self, modname):
|
||||||
names = {}
|
names = {}
|
||||||
with warnings_helper.check_warnings(
|
with warnings_helper.check_warnings(
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
from test import support
|
from test import support
|
||||||
from test.support import import_helper
|
from test.support import import_helper
|
||||||
|
|
||||||
# Skip tests if _multiprocessing wasn't built.
|
|
||||||
import_helper.import_module('_multiprocessing')
|
|
||||||
|
|
||||||
if support.check_sanitizer(address=True, memory=True):
|
if support.check_sanitizer(address=True, memory=True):
|
||||||
# gh-90791: Skip the test because it is too slow when Python is built
|
# gh-90791: Skip the test because it is too slow when Python is built
|
||||||
|
|
|
@ -5,6 +5,8 @@
|
||||||
import unittest
|
import unittest
|
||||||
import sys
|
import sys
|
||||||
from concurrent.futures._base import BrokenExecutor
|
from concurrent.futures._base import BrokenExecutor
|
||||||
|
from concurrent.futures.process import _check_system_limits
|
||||||
|
|
||||||
from logging.handlers import QueueHandler
|
from logging.handlers import QueueHandler
|
||||||
|
|
||||||
from test import support
|
from test import support
|
||||||
|
@ -117,6 +119,11 @@ class FailingInitializerResourcesTest(unittest.TestCase):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def _test(self, test_class):
|
def _test(self, test_class):
|
||||||
|
try:
|
||||||
|
_check_system_limits()
|
||||||
|
except NotImplementedError:
|
||||||
|
self.skipTest("ProcessPoolExecutor unavailable on this system")
|
||||||
|
|
||||||
runner = unittest.TextTestRunner()
|
runner = unittest.TextTestRunner()
|
||||||
runner.run(test_class('test_initializer'))
|
runner.run(test_class('test_initializer'))
|
||||||
|
|
||||||
|
|
|
@ -136,6 +136,12 @@ def strip_mixin(name):
|
||||||
|
|
||||||
|
|
||||||
def setup_module():
|
def setup_module():
|
||||||
unittest.addModuleCleanup(multiprocessing.util._cleanup_tests)
|
try:
|
||||||
|
_check_system_limits()
|
||||||
|
except NotImplementedError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
unittest.addModuleCleanup(multiprocessing.util._cleanup_tests)
|
||||||
|
|
||||||
thread_info = threading_helper.threading_setup()
|
thread_info = threading_helper.threading_setup()
|
||||||
unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
|
unittest.addModuleCleanup(threading_helper.threading_cleanup, *thread_info)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Enable ``test_concurrent_futures`` on platforms that support threading but not
|
||||||
|
multiprocessing.
|
Loading…
Reference in a new issue