Patch #441091 from Finn Bock: the more advanced flush options are not
authorAndrew M. Kuchling <amk@amk.ca>
Fri, 10 Aug 2001 15:50:11 +0000 (15:50 +0000)
committerAndrew M. Kuchling <amk@amk.ca>
Fri, 10 Aug 2001 15:50:11 +0000 (15:50 +0000)
  available in java, so only use the advanced flush options if they
  are defined in the zlib module.

Lib/test/test_zlib.py

index 198f0d9ef1df0d236cb5447f3c890f33838a617e..439db2273906ca26818f4632af57869515e03aea 100644 (file)
@@ -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'):
+
+    # 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))
+    # 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) )
+    # 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"
+    # 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.