Skip to content

Commit d82e17a

Browse files
authored
Merge pull request #10 from pycompression/newzlibng
Update embedded zlib-ng version to 2.0.7
2 parents 128619b + 281f7ad commit d82e17a

File tree

6 files changed

+8
-38
lines changed

6 files changed

+8
-38
lines changed

CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Changelog
99
1010
version 0.2.0-dev
1111
-----------------
12+
+ Update embedded zlib-ng version to 2.0.7
1213
+ Escape GIL for adler32 and crc32 functions.
1314

1415
version 0.1.0

README.rst

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,8 @@ Differences with zlib and gzip modules
120120

121121
.. differences start
122122
123-
+ Compression level 1 zlib_ng has a much worse compression rate than that in
123+
+ Compression level 1 zlib_ng has a worse compression rate than that in
124124
zlib. For other compression levels zlib_ng compresses better.
125-
+ Compression level 1 does not apply requested ``wbits`` correctly. For example
126-
compressing with ``zlib_ng.compress(data, level=1, wbits=-9)`` results in
127-
data that cannot be decompressed with ``zlib_ng.decompress(data, wbits=-9)``
128-
as this will throw an error mentioning invalid window sizes. This is a
129-
bug in the included zlib-ng 2.0.6.
130125
+ ``gzip_ng.open`` returns a class ``GzipNGFile`` instead of ``GzipFile``. Since
131126
there are differences between the compressed ratios between levels, a
132127
difference in naming was chosen to reflect this.

src/zlib_ng/zlib-ng

Submodule zlib-ng updated 76 files

src/zlib_ng/zlib_ngmodule.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
#include "stdbool.h"
1010
#include "stdint.h"
1111

12-
#if defined(ZLIBNG_VERNUM) && ZLIBNG_VERNUM < 0x02060
13-
#error "At least zlib-ng version 2.0.6 is required"
12+
#if defined(ZLIBNG_VERNUM) && ZLIBNG_VERNUM < 0x02070
13+
#error "At least zlib-ng version 2.0.7 is required"
1414
#endif
1515

1616
#define ENTER_ZLIB(obj) do { \

tests/test_compat.py

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,14 +82,7 @@ def test_adler32(data_size, value):
8282
def test_compress(data_size, level, wbits):
8383
data = DATA[:data_size]
8484
compressed = zlib_ng.compress(data, level=level, wbits=wbits)
85-
try:
86-
decompressed = zlib.decompress(compressed, wbits)
87-
except zlib.error:
88-
# Known bug in zlib-ng 2.0.6. Wbits is not correctly applied for level 1.
89-
if (zlib_ng.ZLIBNG_VERSION == "2.0.6" and
90-
level == 1 and
91-
wbits & 0b1111 < 13):
92-
pytest.xfail()
85+
decompressed = zlib.decompress(compressed, wbits)
9386
assert decompressed == data
9487

9588

@@ -118,15 +111,7 @@ def test_decompress_wbits(data_size, level, wbits, memLevel, strategy):
118111
def test_decompress_zlib_ng(data_size, level, wbits):
119112
data = DATA[:data_size]
120113
compressed = zlib_ng.compress(data, level=level, wbits=wbits)
121-
try:
122-
decompressed = zlib_ng.decompress(compressed, wbits=wbits)
123-
except zlib_ng.error:
124-
# Known bug in zlib-ng 2.0.6. Wbits is not correctly applied for level 1.
125-
if (zlib_ng.ZLIBNG_VERSION == "2.0.6" and
126-
level == 1 and
127-
wbits & 0b1111 < 13):
128-
pytest.xfail()
129-
assert decompressed == data
114+
decompressed = zlib_ng.decompress(compressed, wbits=wbits)
130115
assert decompressed == data
131116

132117

@@ -139,14 +124,7 @@ def test_compress_compressobj(data_size, level, wbits, memLevel, strategy):
139124
memLevel=memLevel,
140125
strategy=strategy)
141126
compressed = compressobj.compress(data) + compressobj.flush()
142-
try:
143-
decompressed = zlib.decompress(compressed, wbits=wbits)
144-
except zlib.error:
145-
# Known bug in zlib-ng 2.0.6. Wbits is not correctly applied for level 1.
146-
if (zlib_ng.ZLIBNG_VERSION == "2.0.6" and
147-
level == 1 and
148-
wbits & 0b1111 < 13):
149-
pytest.xfail()
127+
decompressed = zlib.decompress(compressed, wbits=wbits)
150128
assert data == decompressed
151129

152130

tests/test_zlib_compliance.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -835,10 +835,6 @@ def test_large_unconsumed_tail(self, size):
835835
finally:
836836
comp = uncomp = data = None
837837

838-
# TODO: zlib-ng does not handle wbits for the zlib header correctly.
839-
# TODO: latest zlib-ng works correctly. Should be fixed when new release
840-
# TODO: of zlib-ng comes.
841-
@unittest.expectedFailure
842838
def test_wbits(self):
843839
# wbits=0 only supported since zlib v1.2.3.5
844840
# Register "1.2.3" as "1.2.3.0"

0 commit comments

Comments
 (0)