diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-15 17:25:58 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2011-01-15 17:25:58 (GMT) |
commit | d0ebc75e7368cc4b1a8e504674feabc98f8fc5fd (patch) | |
tree | 1c29a4b62e0d0240180ad34a5e073d060bb7cc3d | |
parent | 3988ed8e6f06ba8474a7f120d7f10f2a4c479f29 (diff) | |
download | cpython-d0ebc75e7368cc4b1a8e504674feabc98f8fc5fd.zip cpython-d0ebc75e7368cc4b1a8e504674feabc98f8fc5fd.tar.gz cpython-d0ebc75e7368cc4b1a8e504674feabc98f8fc5fd.tar.bz2 |
Fix mmap and test_mmap under Windows too (followup to r88022)v3.2rc1
-rw-r--r-- | Lib/test/test_mmap.py | 11 | ||||
-rw-r--r-- | Modules/mmapmodule.c | 1 |
2 files changed, 7 insertions, 5 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index c7b8d60..08b0714 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -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) diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index ef026b2..f3b2f50 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -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; } |