Fix mmap and test_mmap under Windows too (followup to r88022)

This commit is contained in:
Antoine Pitrou 2011-01-15 17:25:58 +00:00
parent 3988ed8e6f
commit d0ebc75e73
2 changed files with 7 additions and 5 deletions

View File

@ -325,13 +325,14 @@ class MmapTests(unittest.TestCase):
# map length with an offset doesn't cause a segfault.
if not hasattr(os, "stat"):
self.skipTest("needs os.stat")
with open(TESTFN, "wb+") as f:
f.write(49152 * b'm') # Arbitrary character
# NOTE: allocation granularity is currently 65536 under Win64,
# and therefore the minimum offset alignment.
with open(TESTFN, "wb") as f:
f.write((65536 * 2) * b'm') # Arbitrary character
with open(TESTFN, "rb") as f:
mf = mmap.mmap(f.fileno(), 0, offset=40960, access=mmap.ACCESS_READ)
self.assertRaises(IndexError, mf.__getitem__, 45000)
mf.close()
with mmap.mmap(f.fileno(), 0, offset=65536, access=mmap.ACCESS_READ) as mf:
self.assertRaises(IndexError, mf.__getitem__, 80000)
def test_move(self):
# make move works everywhere (64-bit format problem earlier)

View File

@ -1300,6 +1300,7 @@ new_mmap_object(PyTypeObject *type, PyObject *args, PyObject *kwdict)
else
m_obj->size = low;
#endif
m_obj->size -= offset;
} else {
m_obj->size = map_size;
}