summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2011-01-15 17:31:19 (GMT)
committerAntoine Pitrou <solipsis@pitrou.net>2011-01-15 17:31:19 (GMT)
commit50dc65f6cef58f94cf87538a9fd886e3674a9980 (patch)
treed51d8558837280beab536385fc03cb76be041587
parentfb7bc3d2f06e4b7c4b7bb0daf85c26cad9832cf3 (diff)
downloadcpython-50dc65f6cef58f94cf87538a9fd886e3674a9980.zip
cpython-50dc65f6cef58f94cf87538a9fd886e3674a9980.tar.gz
cpython-50dc65f6cef58f94cf87538a9fd886e3674a9980.tar.bz2
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) ........
-rw-r--r--Lib/test/test_mmap.py14
-rw-r--r--Modules/mmapmodule.c1
2 files changed, 10 insertions, 5 deletions
diff --git a/Lib/test/test_mmap.py b/Lib/test/test_mmap.py
index 5b99d00..c20b96d 100644
--- a/Lib/test/test_mmap.py
+++ b/Lib/test/test_mmap.py
@@ -329,13 +329,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 199d960..bbea208 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -1269,6 +1269,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;
}