]> granicus.if.org Git - python/commitdiff
Skip large file tests on Windowns and OSX.
authorGuido van Rossum <guido@python.org>
Tue, 10 Apr 2007 20:08:41 +0000 (20:08 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 10 Apr 2007 20:08:41 +0000 (20:08 +0000)
Reduce large file size to 2**31 (and a bit).

Lib/test/test_io.py

index 87d6df68ef355757a51a8e726c47c55b7afb920b..0a37fc2ac864894dcff7e9ffcbcf74e8f8c29994 100644 (file)
@@ -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()