diff options
author | Guido van Rossum <guido@python.org> | 2001-09-10 13:34:12 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-09-10 13:34:12 (GMT) |
commit | 47f40343b304cbd92dec796cdb2b647743a95c01 (patch) | |
tree | 67d6c78ed6005dc167d90acca3ca3c6d77eca413 /Lib/test/test_largefile.py | |
parent | fda30588273598faf7899791d832d90ae6f7cf73 (diff) | |
download | cpython-47f40343b304cbd92dec796cdb2b647743a95c01.zip cpython-47f40343b304cbd92dec796cdb2b647743a95c01.tar.gz cpython-47f40343b304cbd92dec796cdb2b647743a95c01.tar.bz2 |
Change the criteria for skipping the test.
If on Windows, we require the 'largefile' resource.
If not on Windows, we use a test that actually writes a byte beyond
the 2BG limit -- seeking alone is not sufficient, since on some
systems (e.g. Linux with glibc 2.2) the sytem call interface supports
large seek offsets but not all filesystem implementations do.
Note that on Windows, we do not use the write test: on Win2K, that
test can take a minute trying to zero all those blocks on disk, and on
Windows our code always supports large seek offsets (but again, not
all filesystems do). This may mean that on Win95, or on certain other
backward filesystems, test_largefile will *fail*.
Diffstat (limited to 'Lib/test/test_largefile.py')
-rw-r--r-- | Lib/test/test_largefile.py | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/Lib/test/test_largefile.py b/Lib/test/test_largefile.py index b2bec1f..407aba8 100644 --- a/Lib/test/test_largefile.py +++ b/Lib/test/test_largefile.py @@ -11,25 +11,6 @@ import test_support import os, struct, stat, sys -# only run if the current system support large files -f = open(test_support.TESTFN, 'wb') -try: - # 2**31 == 2147483648 - f.seek(2147483649L) -except (IOError, OverflowError): - f.close() - os.unlink(test_support.TESTFN) - raise test_support.TestSkipped, \ - "platform does not have largefile support" -else: - f.close() - - -# create >2GB file (2GB = 2147483648 bytes) -size = 2500000000L -name = test_support.TESTFN - - # On Windows 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 not, nothing after this line stanza will be @@ -38,6 +19,28 @@ if sys.platform[:3] == 'win': test_support.requires( 'largefile', 'test requires %s bytes and a long time to run' % str(size)) +else: + # Only run if the current filesystem supports large files. + # (Skip this test on Windows, since we now always support large files.) + f = open(test_support.TESTFN, 'wb') + try: + # 2**31 == 2147483648 + f.seek(2147483649L) + # Seeking is not enough of a test: you must write and flush, too! + f.write("x") + f.flush() + except (IOError, OverflowError): + f.close() + os.unlink(test_support.TESTFN) + raise test_support.TestSkipped, \ + "filesystem does not have largefile support" + else: + f.close() + + +# create >2GB file (2GB = 2147483648 bytes) +size = 2500000000L +name = test_support.TESTFN def expect(got_this, expect_this): |