Commit fcfc8d5c authored by Andrew M. Kuchling's avatar Andrew M. Kuchling

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.
parent 315cd29e
...@@ -78,7 +78,10 @@ else: ...@@ -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) ...@@ -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() # Create compressor and decompressor objects
c=zlib.compressobj(9)
d=zlib.decompressobj()
# Try 17K of data # Try 17K of data
# generate random data stream # generate random data stream
a="" a=""
for i in range(17*1024): for i in range(17*1024):
a=a+chr(random.randint(0,255)) a=a+chr(random.randint(0,255))
# compress, sync-flush, and decompress # compress, sync-flush, and decompress
t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) ) t = d.decompress( c.compress(a)+c.flush(zlib.Z_SYNC_FLUSH) )
# if decompressed data is different from the input data, choke. # if decompressed data is different from the input data, choke.
if len(t) != len(a): if len(t) != len(a):
print len(a),len(t),len(d.unused_data) print len(a),len(t),len(d.unused_data)
raise TestFailed, "output of 17K doesn't match" 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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment