mirror of https://github.com/python/cpython.git
bpo-43592: Raise RLIMIT_NOFILE in test.libregrtest (GH-29127)
Raise RLIMIT_NOFILE in test.libregrtest. On macOS the default is often too low for our testsuite to succeed. Co-authored by reviewer: Victor Stinner
This commit is contained in:
parent
01cf4fb9c1
commit
843b890334
|
@ -39,6 +39,7 @@ def setup_tests(ns):
|
||||||
for signum in signals:
|
for signum in signals:
|
||||||
faulthandler.register(signum, chain=True, file=stderr_fd)
|
faulthandler.register(signum, chain=True, file=stderr_fd)
|
||||||
|
|
||||||
|
_adjust_resource_limits()
|
||||||
replace_stdout()
|
replace_stdout()
|
||||||
support.record_original_stdout(sys.stdout)
|
support.record_original_stdout(sys.stdout)
|
||||||
|
|
||||||
|
@ -133,3 +134,26 @@ def restore_stdout():
|
||||||
sys.stdout.close()
|
sys.stdout.close()
|
||||||
sys.stdout = stdout
|
sys.stdout = stdout
|
||||||
atexit.register(restore_stdout)
|
atexit.register(restore_stdout)
|
||||||
|
|
||||||
|
|
||||||
|
def _adjust_resource_limits():
|
||||||
|
"""Adjust the system resource limits (ulimit) if needed."""
|
||||||
|
try:
|
||||||
|
import resource
|
||||||
|
from resource import RLIMIT_NOFILE, RLIM_INFINITY
|
||||||
|
except ImportError:
|
||||||
|
return
|
||||||
|
fd_limit, max_fds = resource.getrlimit(RLIMIT_NOFILE)
|
||||||
|
# On macOS the default fd limit is sometimes too low (256) for our
|
||||||
|
# test suite to succeed. Raise it to something more reasonable.
|
||||||
|
# 1024 is a common Linux default.
|
||||||
|
desired_fds = 1024
|
||||||
|
if fd_limit < desired_fds and fd_limit < max_fds:
|
||||||
|
new_fd_limit = min(desired_fds, max_fds)
|
||||||
|
try:
|
||||||
|
resource.setrlimit(RLIMIT_NOFILE, (new_fd_limit, max_fds))
|
||||||
|
print(f"Raised RLIMIT_NOFILE: {fd_limit} -> {new_fd_limit}")
|
||||||
|
except (ValueError, OSError) as err:
|
||||||
|
print(f"Unable to raise RLIMIT_NOFILE from {fd_limit} to "
|
||||||
|
f"{new_fd_limit}: {err}.")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
:mod:`test.libregrtest` now raises the soft resource limit for the maximum
|
||||||
|
number of file descriptors when the default is too low for our test suite as
|
||||||
|
was often the case on macOS.
|
Loading…
Reference in New Issue