diff options
author | Tim Peters <tim.peters@gmail.com> | 2002-03-12 03:04:44 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2002-03-12 03:04:44 (GMT) |
commit | 8f01b680c85853948591c28ceae356760e7c7c33 (patch) | |
tree | 5f5010a50ee3f6bacdb34076a5af115fa425b94b /Lib/test/test_largefile.py | |
parent | 9d142adfce027096a5c80dcaf7193b510cf7f984 (diff) | |
download | cpython-8f01b680c85853948591c28ceae356760e7c7c33.zip cpython-8f01b680c85853948591c28ceae356760e7c7c33.tar.gz cpython-8f01b680c85853948591c28ceae356760e7c7c33.tar.bz2 |
Change Windows file.truncate() to (a) restore the original file position,
and (b) stop trying to prevent file growth.
Beef up the file.truncate() docs.
Change test_largefile.py to stop assuming that f.truncate() moves the
file pointer to the truncation point, and to verify instead that it leaves
the file position alone. Remove the test for what happens when a
specified size exceeds the original file size (it's ill-defined, according
to the Single Unix Spec).
Diffstat (limited to 'Lib/test/test_largefile.py')
-rw-r--r-- | Lib/test/test_largefile.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/Lib/test/test_largefile.py b/Lib/test/test_largefile.py index bc24635..8bff5df 100644 --- a/Lib/test/test_largefile.py +++ b/Lib/test/test_largefile.py @@ -133,24 +133,30 @@ if hasattr(f, 'truncate'): print 'try truncate' f = open(name, 'r+b') f.seek(0, 2) - expect(f.tell(), size+1) + expect(f.tell(), size+1) # else we've lost track of the true size # Cut it back via seek + truncate with no argument. newsize = size - 10 f.seek(newsize) f.truncate() - expect(f.tell(), newsize) - # Ensure that truncate(bigger than true size) doesn't grow the file. - f.truncate(size) - expect(f.tell(), newsize) + expect(f.tell(), newsize) # else pointer moved + f.seek(0, 2) + expect(f.tell(), newsize) # else wasn't truncated # Ensure that truncate(smaller than true size) shrinks the file. newsize -= 1 - f.seek(0) + f.seek(42) f.truncate(newsize) - expect(f.tell(), newsize) + expect(f.tell(), 42) # else pointer moved + f.seek(0, 2) + expect(f.tell(), newsize) # else wasn't truncated + + # XXX truncate(larger than true size) is ill-defined across platforms + # cut it waaaaay back - f.truncate(1) f.seek(0) - expect(len(f.read()), 1) + f.truncate(1) + expect(f.tell(), 0) # else pointer moved + expect(len(f.read()), 1) # else wasn't truncated + f.close() os.unlink(name) |