mirror of
https://github.com/python/cpython.git
synced 2025-11-19 02:39:15 +00:00
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
1 changed files with 20 additions and 15 deletions
|
|
@ -78,7 +78,10 @@ else:
|
||||||
|
|
||||||
# Test flush() with the various options, using all the different levels
|
# Test flush() with the various options, using all the different levels
|
||||||
# in order to provide more variations.
|
# 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):
|
for level in range(10):
|
||||||
obj = zlib.compressobj( level )
|
obj = zlib.compressobj( level )
|
||||||
d = obj.compress( buf[:3000] )
|
d = obj.compress( buf[:3000] )
|
||||||
|
|
@ -96,23 +99,25 @@ random.seed(1)
|
||||||
|
|
||||||
print 'Testing on 17K of random data'
|
print 'Testing on 17K of random data'
|
||||||
|
|
||||||
# Create compressor and decompressor objects
|
if hasattr(zlib, 'Z_SYNC_FLUSH'):
|
||||||
c=zlib.compressobj(9)
|
|
||||||
d=zlib.decompressobj()
|
|
||||||
|
|
||||||
# Try 17K of data
|
# Create compressor and decompressor objects
|
||||||
# generate random data stream
|
c=zlib.compressobj(9)
|
||||||
a=""
|
d=zlib.decompressobj()
|
||||||
for i in range(17*1024):
|
|
||||||
a=a+chr(random.randint(0,255))
|
|
||||||
|
|
||||||
# compress, sync-flush, and decompress
|
# Try 17K of data
|
||||||
t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) )
|
# 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.
|
# compress, sync-flush, and decompress
|
||||||
if len(t) != len(a):
|
t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) )
|
||||||
print len(a),len(t),len(d.unused_data)
|
|
||||||
raise TestFailed, "output of 17K doesn't match"
|
# 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():
|
def ignore():
|
||||||
"""An empty function with a big string.
|
"""An empty function with a big string.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue