Issue #12156: Skip test_multiprocessing on systems which don't support enough

POSIX semaphores (among which FreeBSD < 8).
This commit is contained in:
Charles-François Natali 2011-11-22 18:35:18 +01:00
parent 975134e2a2
commit 6392d7f68b

View file

@ -95,6 +95,22 @@ except ImportError:
Structure = object
c_int = c_double = None
def check_enough_semaphores():
"""Check that the system supports enough semaphores to run the test."""
# minimum number of semaphores available according to POSIX
nsems_min = 256
try:
nsems = os.sysconf("SC_SEM_NSEMS_MAX")
except (AttributeError, ValueError):
# sysconf not available or setting not available
return
if nsems == -1 or nsems >= nsems_min:
return
raise unittest.SkipTest("The OS doesn't support enough semaphores "
"to run the test (required: %d)." % nsems_min)
#
# Creates a wrapper for a function which records the time it takes to finish
#
@ -2236,6 +2252,8 @@ def test_main(run=None):
except OSError:
raise unittest.SkipTest("OSError raises on RLock creation, see issue 3111!")
check_enough_semaphores()
if run is None:
from test.test_support import run_unittest as run