mirror of
https://github.com/python/cpython.git
synced 2025-12-09 18:48:05 +00:00
Skip large file tests on Windowns and OSX.
Reduce large file size to 2**31 (and a bit).
This commit is contained in:
parent
53807dabf0
commit
34d69e57e3
1 changed files with 25 additions and 10 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
"""Unit tests for io.py."""
|
"""Unit tests for io.py."""
|
||||||
|
|
||||||
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
|
@ -90,21 +91,23 @@ class IOTest(unittest.TestCase):
|
||||||
f.seek(-2, 2)
|
f.seek(-2, 2)
|
||||||
f.truncate()
|
f.truncate()
|
||||||
|
|
||||||
|
LARGE = 2**31
|
||||||
|
|
||||||
def large_file_ops(self, f):
|
def large_file_ops(self, f):
|
||||||
assert f.readable()
|
assert f.readable()
|
||||||
assert f.writable()
|
assert f.writable()
|
||||||
self.assertEqual(f.seek(2**32), 2**32)
|
self.assertEqual(f.seek(self.LARGE), self.LARGE)
|
||||||
self.assertEqual(f.tell(), 2**32)
|
self.assertEqual(f.tell(), self.LARGE)
|
||||||
self.assertEqual(f.write(b"xxx"), 3)
|
self.assertEqual(f.write(b"xxx"), 3)
|
||||||
self.assertEqual(f.tell(), 2**32 + 3)
|
self.assertEqual(f.tell(), self.LARGE + 3)
|
||||||
self.assertEqual(f.seek(-1, 1), 2**32 + 2)
|
self.assertEqual(f.seek(-1, 1), self.LARGE + 2)
|
||||||
f.truncate()
|
f.truncate()
|
||||||
self.assertEqual(f.tell(), 2**32 + 2)
|
self.assertEqual(f.tell(), self.LARGE + 2)
|
||||||
self.assertEqual(f.seek(0, 2), 2**32 + 2)
|
self.assertEqual(f.seek(0, 2), self.LARGE + 2)
|
||||||
f.truncate(2**32 + 1)
|
f.truncate(self.LARGE + 1)
|
||||||
self.assertEqual(f.tell(), 2**32 + 1)
|
self.assertEqual(f.tell(), self.LARGE + 1)
|
||||||
self.assertEqual(f.seek(0, 2), 2**32 + 1)
|
self.assertEqual(f.seek(0, 2), self.LARGE + 1)
|
||||||
self.assertEqual(f.seek(-1, 2), 2**32)
|
self.assertEqual(f.seek(-1, 2), self.LARGE)
|
||||||
self.assertEqual(f.read(2), b"x")
|
self.assertEqual(f.read(2), b"x")
|
||||||
|
|
||||||
def read_ops(self, f):
|
def read_ops(self, f):
|
||||||
|
|
@ -148,6 +151,18 @@ class IOTest(unittest.TestCase):
|
||||||
self.read_ops(f)
|
self.read_ops(f)
|
||||||
|
|
||||||
def test_large_file_ops(self):
|
def test_large_file_ops(self):
|
||||||
|
# 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 space
|
||||||
|
# therefore the resource must be enabled to run this test.
|
||||||
|
if sys.platform[:3] == 'win' or sys.platform == 'darwin':
|
||||||
|
if not test_support.is_resource_enabled("largefile"):
|
||||||
|
print("\nTesting large file ops skipped on %s." % sys.platform,
|
||||||
|
file=sys.stderr)
|
||||||
|
print("It requires %d bytes and a long time." % self.LARGE,
|
||||||
|
file=sys.stderr)
|
||||||
|
print("Use 'regrtest.py -u largefile test_io' to run it.",
|
||||||
|
file=sys.stderr)
|
||||||
|
return
|
||||||
f = io.open(test_support.TESTFN, "w+b", buffering=0)
|
f = io.open(test_support.TESTFN, "w+b", buffering=0)
|
||||||
self.large_file_ops(f)
|
self.large_file_ops(f)
|
||||||
f.close()
|
f.close()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue