summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_resource.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_resource.py')
-rw-r--r--Lib/test/test_resource.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index 12b8134..29ce35b 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -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