summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-04-10 20:08:41 (GMT)
committerGuido van Rossum <guido@python.org>2007-04-10 20:08:41 (GMT)
commit34d69e57e31763bdfcff77dc3689ec42a5228814 (patch)
tree6a950b548ecbf4e69744b265565a0293e8413716
parent53807dabf0fb6701e00d28aff4444407d8a91e23 (diff)
downloadcpython-34d69e57e31763bdfcff77dc3689ec42a5228814.zip
cpython-34d69e57e31763bdfcff77dc3689ec42a5228814.tar.gz
cpython-34d69e57e31763bdfcff77dc3689ec42a5228814.tar.bz2
Skip large file tests on Windowns and OSX.
Reduce large file size to 2**31 (and a bit).
-rw-r--r--Lib/test/test_io.py35
1 files changed, 25 insertions, 10 deletions
diff --git a/Lib/test/test_io.py b/Lib/test/test_io.py
index 87d6df6..0a37fc2 100644
--- a/Lib/test/test_io.py
+++ b/Lib/test/test_io.py
@@ -1,5 +1,6 @@
"""Unit tests for io.py."""
+import sys
import unittest
from itertools import chain
from test import test_support
@@ -90,21 +91,23 @@ class IOTest(unittest.TestCase):
f.seek(-2, 2)
f.truncate()
+ LARGE = 2**31
+
def large_file_ops(self, f):
assert f.readable()
assert f.writable()
- self.assertEqual(f.seek(2**32), 2**32)
- self.assertEqual(f.tell(), 2**32)
+ self.assertEqual(f.seek(self.LARGE), self.LARGE)
+ self.assertEqual(f.tell(), self.LARGE)
self.assertEqual(f.write(b"xxx"), 3)
- self.assertEqual(f.tell(), 2**32 + 3)
- self.assertEqual(f.seek(-1, 1), 2**32 + 2)
+ self.assertEqual(f.tell(), self.LARGE + 3)
+ self.assertEqual(f.seek(-1, 1), self.LARGE + 2)
f.truncate()
- self.assertEqual(f.tell(), 2**32 + 2)
- self.assertEqual(f.seek(0, 2), 2**32 + 2)
- f.truncate(2**32 + 1)
- self.assertEqual(f.tell(), 2**32 + 1)
- self.assertEqual(f.seek(0, 2), 2**32 + 1)
- self.assertEqual(f.seek(-1, 2), 2**32)
+ self.assertEqual(f.tell(), self.LARGE + 2)
+ self.assertEqual(f.seek(0, 2), self.LARGE + 2)
+ f.truncate(self.LARGE + 1)
+ self.assertEqual(f.tell(), self.LARGE + 1)
+ self.assertEqual(f.seek(0, 2), self.LARGE + 1)
+ self.assertEqual(f.seek(-1, 2), self.LARGE)
self.assertEqual(f.read(2), b"x")
def read_ops(self, f):
@@ -148,6 +151,18 @@ class IOTest(unittest.TestCase):
self.read_ops(f)
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)
self.large_file_ops(f)
f.close()