mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #5784: Merge zlib from 3.5
This commit is contained in:
commit
5677aa75f0
2 changed files with 12 additions and 2 deletions
|
@ -147,6 +147,7 @@ The available exception and functions in this module are:
|
||||||
must include a zlib header and trailer.
|
must include a zlib header and trailer.
|
||||||
|
|
||||||
* 0: Automatically determine the window size from the zlib header.
|
* 0: Automatically determine the window size from the zlib header.
|
||||||
|
Only supported since zlib 1.2.3.5.
|
||||||
|
|
||||||
* −8 to −15: Uses the absolute value of *wbits* as the window size
|
* −8 to −15: Uses the absolute value of *wbits* as the window size
|
||||||
logarithm. The input must be a raw stream with no header or trailer.
|
logarithm. The input must be a raw stream with no header or trailer.
|
||||||
|
|
|
@ -685,10 +685,18 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
|
||||||
data = None
|
data = None
|
||||||
|
|
||||||
def test_wbits(self):
|
def test_wbits(self):
|
||||||
|
# wbits=0 only supported since zlib v1.2.3.5
|
||||||
|
# Register "1.2.3" as "1.2.3.0"
|
||||||
|
v = (zlib.ZLIB_RUNTIME_VERSION + ".0").split(".", 4)
|
||||||
|
supports_wbits_0 = int(v[0]) > 1 or int(v[0]) == 1 \
|
||||||
|
and (int(v[1]) > 2 or int(v[1]) == 2
|
||||||
|
and (int(v[2]) > 3 or int(v[2]) == 3 and int(v[3]) >= 5))
|
||||||
|
|
||||||
co = zlib.compressobj(level=1, wbits=15)
|
co = zlib.compressobj(level=1, wbits=15)
|
||||||
zlib15 = co.compress(HAMLET_SCENE) + co.flush()
|
zlib15 = co.compress(HAMLET_SCENE) + co.flush()
|
||||||
self.assertEqual(zlib.decompress(zlib15, 15), HAMLET_SCENE)
|
self.assertEqual(zlib.decompress(zlib15, 15), HAMLET_SCENE)
|
||||||
self.assertEqual(zlib.decompress(zlib15, 0), HAMLET_SCENE)
|
if supports_wbits_0:
|
||||||
|
self.assertEqual(zlib.decompress(zlib15, 0), HAMLET_SCENE)
|
||||||
self.assertEqual(zlib.decompress(zlib15, 32 + 15), HAMLET_SCENE)
|
self.assertEqual(zlib.decompress(zlib15, 32 + 15), HAMLET_SCENE)
|
||||||
with self.assertRaisesRegex(zlib.error, 'invalid window size'):
|
with self.assertRaisesRegex(zlib.error, 'invalid window size'):
|
||||||
zlib.decompress(zlib15, 14)
|
zlib.decompress(zlib15, 14)
|
||||||
|
@ -702,7 +710,8 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
|
||||||
zlib9 = co.compress(HAMLET_SCENE) + co.flush()
|
zlib9 = co.compress(HAMLET_SCENE) + co.flush()
|
||||||
self.assertEqual(zlib.decompress(zlib9, 9), HAMLET_SCENE)
|
self.assertEqual(zlib.decompress(zlib9, 9), HAMLET_SCENE)
|
||||||
self.assertEqual(zlib.decompress(zlib9, 15), HAMLET_SCENE)
|
self.assertEqual(zlib.decompress(zlib9, 15), HAMLET_SCENE)
|
||||||
self.assertEqual(zlib.decompress(zlib9, 0), HAMLET_SCENE)
|
if supports_wbits_0:
|
||||||
|
self.assertEqual(zlib.decompress(zlib9, 0), HAMLET_SCENE)
|
||||||
self.assertEqual(zlib.decompress(zlib9, 32 + 9), HAMLET_SCENE)
|
self.assertEqual(zlib.decompress(zlib9, 32 + 9), HAMLET_SCENE)
|
||||||
dco = zlib.decompressobj(wbits=32 + 9)
|
dco = zlib.decompressobj(wbits=32 + 9)
|
||||||
self.assertEqual(dco.decompress(zlib9), HAMLET_SCENE)
|
self.assertEqual(dco.decompress(zlib9), HAMLET_SCENE)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue