mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
A few days ago a test was added here to ensure that creating an mmap
with a size larger than the underlying file worked on Windows. It does <wink>. However, merely creating an mmap that way has the side effect of growing the file on disk to match the specified size. A *later* test assumed that the file on disk was still exactly as it was before the new "size too big" test was added, but that's no longer true. So added a hack at the end of the "size too big" test to truncate the disk file back to its original size on Windows.
This commit is contained in:
parent
a0d1833639
commit
4f4f4d70af
1 changed files with 15 additions and 4 deletions
|
@ -102,7 +102,7 @@ def test_both():
|
|||
# Try resizing map
|
||||
print ' Attempting resize()'
|
||||
try:
|
||||
m.resize( 512 )
|
||||
m.resize(512)
|
||||
except SystemError:
|
||||
# resize() not supported
|
||||
# No messages are printed, since the output of this test suite
|
||||
|
@ -196,14 +196,22 @@ def test_both():
|
|||
m = mmap.mmap(f.fileno(), mapsize+1)
|
||||
except ValueError:
|
||||
# we do not expect a ValueError on Windows
|
||||
# CAUTION: This also changes the size of the file on disk, and
|
||||
# later tests assume that the length hasn't changed. We need to
|
||||
# repair that.
|
||||
if sys.platform.startswith('win'):
|
||||
verify(0, "Opening mmap with size+1 should work on Windows.")
|
||||
else:
|
||||
# we expect a ValueError on Unix, but not on Windows
|
||||
if not sys.platform.startswith('win'):
|
||||
verify(0, "Opening mmap with size+1 should raise ValueError.")
|
||||
del m
|
||||
del f
|
||||
m.close()
|
||||
f.close()
|
||||
if sys.platform.startswith('win'):
|
||||
# Repair damage from the resizing test.
|
||||
f = open(TESTFN, 'r+b')
|
||||
f.truncate(mapsize)
|
||||
f.close()
|
||||
|
||||
print " Opening mmap with access=ACCESS_WRITE"
|
||||
f = open(TESTFN, "r+b")
|
||||
|
@ -214,7 +222,10 @@ def test_both():
|
|||
"Write-through memory map memory not updated properly.")
|
||||
m.flush()
|
||||
del m, f
|
||||
verify(open(TESTFN).read() == 'c'*mapsize,
|
||||
f = open(TESTFN, 'rb')
|
||||
stuff = f.read()
|
||||
f.close()
|
||||
verify(open(TESTFN, 'rb').read() == 'c'*mapsize,
|
||||
"Write-through memory map data file not updated properly.")
|
||||
|
||||
print " Opening mmap with access=ACCESS_COPY"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue