Author: Julian Berman <[email protected]>
Branch: zlib-copying
Changeset: r95839:9709a7461303
Date: 2019-02-05 14:49 +0100
http://bitbucket.org/pypy/pypy/changeset/9709a7461303/
Log: Make sure we pass unused_data and unconsumed_tail along.
diff --git a/pypy/module/zlib/interp_zlib.py b/pypy/module/zlib/interp_zlib.py
--- a/pypy/module/zlib/interp_zlib.py
+++ b/pypy/module/zlib/interp_zlib.py
@@ -352,8 +352,8 @@
return Decompress(
space=space,
stream=copied,
- # unused_data=self.unused_data,
- # unconsumed_tail=self.unconsumed_tail,
+ unused_data=self.unused_data,
+ unconsumed_tail=self.unconsumed_tail,
)
def flush(self, space, w_length=None):
diff --git a/pypy/module/zlib/test/test_zlib.py
b/pypy/module/zlib/test/test_zlib.py
--- a/pypy/module/zlib/test/test_zlib.py
+++ b/pypy/module/zlib/test/test_zlib.py
@@ -312,6 +312,23 @@
self.intentionally_break_a_z_stream(zobj=decompressor)
raises(self.zlib.error, decompressor.copy)
+ def test_decompress_copy_carries_along_state(self):
+ """
+ Decompressor.unused_data and unconsumed_tail are carried along when a
+ copy is done.
+ """
+ decompressor = self.zlib.decompressobj()
+ decompressor.decompress(self.compressed, max_length=5)
+ unconsumed_tail = decompressor.unconsumed_tail
+ assert unconsumed_tail
+ assert decompressor.copy().unconsumed_tail == unconsumed_tail
+
+ decompressor.decompress(decompressor.unconsumed_tail)
+ decompressor.decompress("xxx")
+ unused_data = decompressor.unused_data
+ assert unused_data
+ assert decompressor.copy().unused_data == unused_data
+
def test_compress_copy(self):
compressor = self.zlib.compressobj()
d1 = compressor.compress(self.expanded[:10])
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit