diff options
Diffstat (limited to 'Lib/dos-8x3/test_mma.py')
-rw-r--r-- | Lib/dos-8x3/test_mma.py | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/Lib/dos-8x3/test_mma.py b/Lib/dos-8x3/test_mma.py deleted file mode 100644 index 449c674..0000000 --- a/Lib/dos-8x3/test_mma.py +++ /dev/null @@ -1,121 +0,0 @@ - -import mmap -import string, os, re, sys - -PAGESIZE = mmap.PAGESIZE - -def test_both(): - "Test mmap module on Unix systems and Windows" - - # Create an mmap'ed file - f = open('foo', 'w+') - - # Write 2 pages worth of data to the file - f.write('\0'* PAGESIZE) - f.write('foo') - f.write('\0'* (PAGESIZE-3) ) - - m = mmap.mmap(f.fileno(), 2 * PAGESIZE) - f.close() - - # Simple sanity checks - print ' Position of foo:', string.find(m, 'foo') / float(PAGESIZE), 'pages' - assert string.find(m, 'foo') == PAGESIZE - - print ' Length of file:', len(m) / float(PAGESIZE), 'pages' - assert len(m) == 2*PAGESIZE - - print ' Contents of byte 0:', repr(m[0]) - assert m[0] == '\0' - print ' Contents of first 3 bytes:', repr(m[0:3]) - assert m[0:3] == '\0\0\0' - - # Modify the file's content - print "\n Modifying file's content..." - m[0] = '3' - m[PAGESIZE +3: PAGESIZE +3+3]='bar' - - # Check that the modification worked - print ' Contents of byte 0:', repr(m[0]) - assert m[0] == '3' - print ' Contents of first 3 bytes:', repr(m[0:3]) - assert m[0:3] == '3\0\0' - print ' Contents of second page:', repr(m[PAGESIZE-1 : PAGESIZE + 7]) - assert m[PAGESIZE-1 : PAGESIZE + 7] == '\0foobar\0' - - m.flush() - - # Test doing a regular expression match in an mmap'ed file - match=re.search('[A-Za-z]+', m) - if match == None: - print ' ERROR: regex match on mmap failed!' - else: - start, end = match.span(0) - length = end - start - - print ' Regex match on mmap (page start, length of match):', - print start / float(PAGESIZE), length - - assert start == PAGESIZE - assert end == PAGESIZE + 6 - - # test seeking around (try to overflow the seek implementation) - m.seek(0,0) - print ' Seek to zeroth byte' - assert m.tell() == 0 - m.seek(42,1) - print ' Seek to 42nd byte' - assert m.tell() == 42 - m.seek(0,2) - print ' Seek to last byte' - assert m.tell() == len(m) - - print ' Try to seek to negative position...' - try: - m.seek(-1) - except ValueError: - pass - else: - assert 0, 'expected a ValueError but did not get it' - - print ' Try to seek beyond end of mmap...' - try: - m.seek(1,2) - except ValueError: - pass - else: - assert 0, 'expected a ValueError but did not get it' - - print ' Try to seek to negative position...' - try: - m.seek(-len(m)-1,2) - except ValueError: - pass - else: - assert 0, 'expected a ValueError but did not get it' - - # Try resizing map - print ' Attempting resize()' - try: - m.resize( 512 ) - except SystemError: - # resize() not supported - # No messages are printed, since the output of this test suite - # would then be different across platforms. - pass - else: - # resize() is supported - assert len(m) == 512, "len(m) is %d, but expecting 512" % (len(m),) - # Check that we can no longer seek beyond the new size. - try: - m.seek(513,0) - except ValueError: - pass - else: - assert 0, 'Could seek beyond the new size' - - m.close() - os.unlink("foo") - print ' Test passed' - -test_both() |