From: Antoine Pitrou Date: Sat, 15 Jan 2011 17:40:00 +0000 (+0000) Subject: Merged revisions 88036 via svnmerge from X-Git-Tag: v2.7.2rc1~364 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=533aa25b4840bcfb0e119e7c73d66b7dc2e2b255;p=python Merged revisions 88036 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r88036 | antoine.pitrou | 2011-01-15 18:25:58 +0100 (sam., 15 janv. 2011) | 3 lines Fix mmap and test_mmap under Windows too (followup to r88022) ........ --- diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py index 5f540c0749..20ec56466f 100644 --- a/Lib/test/test_mmap.py +++ b/Lib/test/test_mmap.py @@ -331,13 +331,17 @@ 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() + mf = mmap.mmap(f.fileno(), 0, offset=65536, access=mmap.ACCESS_READ) + try: + self.assertRaises(IndexError, mf.__getitem__, 80000) + finally: + mf.close() def test_move(self): # make move works everywhere (64-bit format problem earlier) diff --git a/Modules/mmapmodule.c b/Modules/mmapmodule.c index 6ca95c95f9..0e91f2c067 100644 --- a/Modules/mmapmodule.c +++ b/Modules/mmapmodule.c @@ -1346,6 +1346,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; }