mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
gh-129405: Fix doc for Py_mod_multiple_interpreters default, and add test (GH-129406)
This commit is contained in:
parent
805839021b
commit
fc8d2cba54
3 changed files with 47 additions and 14 deletions
|
@ -2386,8 +2386,10 @@ class SubinterpImportTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(_testmultiphase is None, "test requires _testmultiphase module")
|
||||
def test_multi_init_extension_compat(self):
|
||||
# Module with Py_MOD_PER_INTERPRETER_GIL_SUPPORTED
|
||||
module = '_testmultiphase'
|
||||
require_extension(module)
|
||||
|
||||
if not Py_GIL_DISABLED:
|
||||
with self.subTest(f'{module}: not strict'):
|
||||
self.check_compatible_here(module, strict=False)
|
||||
|
@ -2398,6 +2400,8 @@ class SubinterpImportTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(_testmultiphase is None, "test requires _testmultiphase module")
|
||||
def test_multi_init_extension_non_isolated_compat(self):
|
||||
# Module with Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED
|
||||
# and Py_MOD_GIL_NOT_USED
|
||||
modname = '_test_non_isolated'
|
||||
filename = _testmultiphase.__file__
|
||||
module = import_extension_from_file(modname, filename)
|
||||
|
@ -2413,20 +2417,31 @@ class SubinterpImportTests(unittest.TestCase):
|
|||
|
||||
@unittest.skipIf(_testmultiphase is None, "test requires _testmultiphase module")
|
||||
def test_multi_init_extension_per_interpreter_gil_compat(self):
|
||||
modname = '_test_shared_gil_only'
|
||||
filename = _testmultiphase.__file__
|
||||
module = import_extension_from_file(modname, filename)
|
||||
|
||||
require_extension(module)
|
||||
with self.subTest(f'{modname}: isolated, strict'):
|
||||
self.check_incompatible_here(modname, filename, isolated=True)
|
||||
with self.subTest(f'{modname}: not isolated, strict'):
|
||||
self.check_compatible_here(modname, filename,
|
||||
strict=True, isolated=False)
|
||||
if not Py_GIL_DISABLED:
|
||||
with self.subTest(f'{modname}: not isolated, not strict'):
|
||||
self.check_compatible_here(modname, filename,
|
||||
strict=False, isolated=False)
|
||||
# _test_shared_gil_only:
|
||||
# Explicit Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED (default)
|
||||
# and Py_MOD_GIL_NOT_USED
|
||||
# _test_no_multiple_interpreter_slot:
|
||||
# No Py_mod_multiple_interpreters slot
|
||||
# and Py_MOD_GIL_NOT_USED
|
||||
for modname in ('_test_shared_gil_only',
|
||||
'_test_no_multiple_interpreter_slot'):
|
||||
with self.subTest(modname=modname):
|
||||
|
||||
filename = _testmultiphase.__file__
|
||||
module = import_extension_from_file(modname, filename)
|
||||
|
||||
require_extension(module)
|
||||
with self.subTest(f'{modname}: isolated, strict'):
|
||||
self.check_incompatible_here(modname, filename,
|
||||
isolated=True)
|
||||
with self.subTest(f'{modname}: not isolated, strict'):
|
||||
self.check_compatible_here(modname, filename,
|
||||
strict=True, isolated=False)
|
||||
if not Py_GIL_DISABLED:
|
||||
with self.subTest(f'{modname}: not isolated, not strict'):
|
||||
self.check_compatible_here(
|
||||
modname, filename, strict=False, isolated=False)
|
||||
|
||||
@unittest.skipIf(_testinternalcapi is None, "requires _testinternalcapi")
|
||||
def test_python_compat(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue