diff options
author | Antoine Pitrou <solipsis@pitrou.net> | 2009-03-13 23:42:55 (GMT) |
---|---|---|
committer | Antoine Pitrou <solipsis@pitrou.net> | 2009-03-13 23:42:55 (GMT) |
commit | a28fcfdbdaa082a8d3849d7dc829f89cd7f868a8 (patch) | |
tree | 8f442d68459df06ab7d77f9db01365b2e2ae56e0 /Lib | |
parent | 0ae29cf6176d3f80c1845cf23716a708acbe598b (diff) | |
download | cpython-a28fcfdbdaa082a8d3849d7dc829f89cd7f868a8.zip cpython-a28fcfdbdaa082a8d3849d7dc829f89cd7f868a8.tar.gz cpython-a28fcfdbdaa082a8d3849d7dc829f89cd7f868a8.tar.bz2 |
Issue #5016: FileIO.seekable() could return False if the file position
was negative when truncated to a C int. Patch by Victor Stinner.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_largefile.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Lib/test/test_largefile.py b/Lib/test/test_largefile.py index 584a206..d932659 100644 --- a/Lib/test/test_largefile.py +++ b/Lib/test/test_largefile.py @@ -133,6 +133,15 @@ class LargeFileTest(unittest.TestCase): f.seek(0) self.assertEqual(len(f.read()), 1) # else wasn't truncated + def test_seekable(self): + # Issue #5016; seekable() can return False when the current position + # is negative when truncated to an int. + for pos in (2**31-1, 2**31, 2**31+1): + with self.open(TESTFN, 'rb') as f: + f.seek(pos) + self.assert_(f.seekable()) + + def test_main(): # On Windows and Mac OSX this test comsumes large resources; It # takes a long time to build the >2GB file and takes >2GB of disk @@ -172,6 +181,7 @@ def test_main(): with _open(TESTFN, 'wb') as f: if hasattr(f, 'truncate'): suite.addTest(TestCase('test_truncate')) + suite.addTest(TestCase('test_seekable')) unlink(TESTFN) try: run_unittest(suite) |