summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_largefile.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2002-03-12 03:04:44 (GMT)
committerTim Peters <tim.peters@gmail.com>2002-03-12 03:04:44 (GMT)
commit8f01b680c85853948591c28ceae356760e7c7c33 (patch)
tree5f5010a50ee3f6bacdb34076a5af115fa425b94b /Lib/test/test_largefile.py
parent9d142adfce027096a5c80dcaf7193b510cf7f984 (diff)
downloadcpython-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.py24
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)