mirror of https://github.com/python/cpython.git
Add test case from bug #124981: zlib decompress of sync-flushed data
fails
This commit is contained in:
parent
9aff4a2ad0
commit
9a0f98e0a1
|
@ -8,3 +8,4 @@ normal compression/decompression succeeded
|
|||
compress/decompression obj succeeded
|
||||
decompress with init options succeeded
|
||||
decompressobj with init options succeeded
|
||||
Testing on 17K of random data
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import zlib
|
||||
from test_support import TestFailed
|
||||
import sys
|
||||
import imp
|
||||
|
||||
|
@ -88,6 +89,31 @@
|
|||
print "Decompress failed: flush mode=%i, level=%i" % (sync,level)
|
||||
del obj
|
||||
|
||||
# Test for the odd flushing bugs noted in 2.0, and hopefully fixed in 2.1
|
||||
|
||||
import random
|
||||
random.seed(1)
|
||||
|
||||
print 'Testing on 17K of random data'
|
||||
|
||||
# Create compressor and decompressor objects
|
||||
c=zlib.compressobj(9)
|
||||
d=zlib.decompressobj()
|
||||
|
||||
# Try 17K of data
|
||||
# generate random data stream
|
||||
a=""
|
||||
for i in range(17*1024):
|
||||
a=a+chr(random.randint(0,255))
|
||||
|
||||
# compress, sync-flush, and decompress
|
||||
t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) )
|
||||
|
||||
# if decompressed data is different from the input data, choke.
|
||||
if len(t) != len(a):
|
||||
print len(a),len(t),len(d.unused_data)
|
||||
raise TestFailed, "output of 17K doesn't match"
|
||||
|
||||
def ignore():
|
||||
"""An empty function with a big string.
|
||||
|
||||
|
|
Loading…
Reference in New Issue