Tryag File Manager
Home
-
Turbo Force
Current Path :
/
usr
/
lib
/
python2.4
/
test
/
Upload File :
New :
File
Dir
//usr/lib/python2.4/test/test_resource.py
import os import resource from test.test_support import TESTFN # This test is checking a few specific problem spots. RLIMIT_FSIZE # should be RLIM_INFINITY, which will be a really big number on a # platform with large file support. On these platforms, we need to # test that the get/setrlimit functions properly convert the number to # a C long long and that the conversion doesn't raise an error. try: cur, max = resource.getrlimit(resource.RLIMIT_FSIZE) except AttributeError: pass else: print resource.RLIM_INFINITY == max resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max)) # Now check to see what happens when the RLIMIT_FSIZE is small. Some # versions of Python were terminated by an uncaught SIGXFSZ, but # 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: 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: if not limit_set: raise f.close() os.unlink(TESTFN) finally: resource.setrlimit(resource.RLIMIT_FSIZE, (cur, max)) # And be sure that setrlimit is checking for really large values too_big = 10L**50 try: resource.setrlimit(resource.RLIMIT_FSIZE, (too_big, max)) except (OverflowError, ValueError): pass try: resource.setrlimit(resource.RLIMIT_FSIZE, (max, too_big)) except (OverflowError, ValueError): pass