Kaydet (Commit) e4a070a3 authored tarafından Jason Tishler's avatar Jason Tishler

Patch #551960: Add check for setrlimit() support

test_resource calls resource.setrlimit() to change the file size limits.
This fails on Cygwin, which supports setrlimit() and getrlimit(), just not
changing that particular setting. (The same would apply to any other
platform that has those functions but not that particular feature.)

Since getrlimit() works and setrlimit() can be used for other reasons, a
check for ValueError was added to that part of the test.
üst 20b91358
......@@ -22,15 +22,23 @@ else:
# pythonrun.c has been fixed to ignore that exception. If so, the
# write() should return EFBIG when the limit is exceeded.
# At least one platform has an unlimited RLIMIT_FSIZE and attempts to
# change it raise ValueError instead.
try:
resource.setrlimit(resource.RLIMIT_FSIZE, (1024, max))
try:
resource.setrlimit(resource.RLIMIT_FSIZE, (1024, max))
limit_set = 1
except ValueError:
limit_set = 0
f = open(TESTFN, "wb")
f.write("X" * 1024)
try:
f.write("Y")
f.flush()
except IOError:
pass
if not limit_set:
raise
f.close()
os.unlink(TESTFN)
finally:
......@@ -40,9 +48,9 @@ finally:
too_big = 10L**50
try:
resource.setrlimit(resource.RLIMIT_FSIZE, (too_big, max))
except OverflowError:
except (OverflowError, ValueError):
pass
try:
resource.setrlimit(resource.RLIMIT_FSIZE, (max, too_big))
except OverflowError:
except (OverflowError, ValueError):
pass
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment