except ImportError as err:
self.skipTest(err) # RLIMIT_NPROC is specific to Linux and BSD
limits = getrlimit(RLIMIT_NPROC)
+ [_, hard] = limits
try:
setrlimit(RLIMIT_NPROC, limits)
+ setrlimit(RLIMIT_NPROC, (0, hard))
except ValueError as err:
- # Seems to happen on AMD64 Snow Leop and x86-64 Yosemite buildbots
- print(f"Setting NPROC to {limits!r}: {err!r}, RLIM_INFINITY={RLIM_INFINITY!r}")
- self.skipTest("Setting existing NPROC limit failed")
- [_, hard] = limits
- setrlimit(RLIMIT_NPROC, (0, hard))
+ # Seems to happen on various OS X buildbots
+ print(
+ f"Setting NPROC failed: {err!r}, limits={limits!r}, "
+ f"RLIM_INFINITY={RLIM_INFINITY!r}, "
+ f"getrlimit() -> {getrlimit(RLIMIT_NPROC)!r}")
+ self.skipTest("Setting NPROC limit failed")
self.addCleanup(setrlimit, RLIMIT_NPROC, limits)
# Forking should raise EAGAIN, translated to BlockingIOError
with self.assertRaises(BlockingIOError):