mirror of https://github.com/python/cpython
Patch #441091 from Finn Bock: the more advanced flush options are not
available in java, so only use the advanced flush options if they are defined in the zlib module.
This commit is contained in:
parent
315cd29ecf
commit
fcfc8d5c0e
|
@ -78,7 +78,10 @@ else:
|
|||
|
||||
# Test flush() with the various options, using all the different levels
|
||||
# in order to provide more variations.
|
||||
for sync in [zlib.Z_NO_FLUSH, zlib.Z_SYNC_FLUSH, zlib.Z_FULL_FLUSH]:
|
||||
sync_opt = ['Z_NO_FLUSH', 'Z_SYNC_FLUSH', 'Z_FULL_FLUSH']
|
||||
sync_opt = [getattr(zlib, opt) for opt in sync_opt if hasattr(zlib, opt)]
|
||||
|
||||
for sync in sync_opt:
|
||||
for level in range(10):
|
||||
obj = zlib.compressobj( level )
|
||||
d = obj.compress( buf[:3000] )
|
||||
|
@ -96,23 +99,25 @@ random.seed(1)
|
|||
|
||||
print 'Testing on 17K of random data'
|
||||
|
||||
# Create compressor and decompressor objects
|
||||
c=zlib.compressobj(9)
|
||||
d=zlib.decompressobj()
|
||||
if hasattr(zlib, 'Z_SYNC_FLUSH'):
|
||||
|
||||
# Try 17K of data
|
||||
# generate random data stream
|
||||
a=""
|
||||
for i in range(17*1024):
|
||||
a=a+chr(random.randint(0,255))
|
||||
# Create compressor and decompressor objects
|
||||
c=zlib.compressobj(9)
|
||||
d=zlib.decompressobj()
|
||||
|
||||
# compress, sync-flush, and decompress
|
||||
t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) )
|
||||
# Try 17K of data
|
||||
# generate random data stream
|
||||
a=""
|
||||
for i in range(17*1024):
|
||||
a=a+chr(random.randint(0,255))
|
||||
|
||||
# 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"
|
||||
# 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