Sync up with trunk. Try to flush repeatedly to ensure the exception is raised.
diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py
index 86c7cc2..ac95395 100644
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -1,7 +1,7 @@
import os
import resource
-from test.test_support import TESTFN
+from test.test_support import TESTFN, unlink
# This test is checking a few specific problem spots. RLIMIT_FSIZE
# should be RLIM_INFINITY, which will be a really big number on a
@@ -38,17 +38,19 @@
f.flush()
# On some systems (e.g., Ubuntu on hppa) the flush()
# doesn't always cause the exception, but the close()
- # does eventually. Try closing several times in an attempt
+ # does eventually. Try flushing several times in an attempt
# to ensure the file is really synced and the exception raised.
for i in range(5):
- f.close()
+ time.sleep(.1)
+ f.flush()
except IOError:
if not limit_set:
raise
f.close()
- os.unlink(TESTFN)
finally:
- resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
+ if limit_set:
+ resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max))
+ unlink(TESTFN)
# And be sure that setrlimit is checking for really large values
too_big = 10L**50