8000 gh-101322: Ensure test_zlib.ZlibDecompressorTest runs, fix errors in … · python/cpython@a89e671 · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit a89e671

Browse files
authored
gh-101322: Ensure test_zlib.ZlibDecompressorTest runs, fix errors in ZlibDecompressor (#101323)
* Ensure test_zlib.ZlibDecompressorTest actually runs, fix errors in ZlibDecompressor.
1 parent 144aaa7 commit a89e671

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

Lib/test/test_zlib.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -944,13 +944,18 @@ def choose_lines(source, number, seed=None, generator=random):
944944
"""
945945

946946

947-
class ZlibDecompressorTest():
947+
class ZlibDecompressorTest(unittest.TestCase):
948948
# Test adopted from test_bz2.py
949949
TEXT = HAMLET_SCENE
950950
DATA = zlib.compress(HAMLET_SCENE)
951951
BAD_DATA = b"Not a valid deflate block"
952+
BIG_TEXT = DATA * ((128 * 1024 // len(DATA)) + 1)
953+
BIG_DATA = zlib.compress(BIG_TEXT)
954+
952955
def test_Constructor(self):
953-
self.assertRaises(TypeError, zlib._ZlibDecompressor, 42)
956+
self.assertRaises(TypeError, zlib._ZlibDecompressor, "ASDA")
957+
self.assertRaises(TypeError, zlib._ZlibDecompressor, -15, "notbytes")
958+
self.assertRaises(TypeError, zlib._ZlibDecompressor, -15, b"bytes", 5)
954959

955960
def testDecompress(self):
956961
zlibd = zlib._ZlibDecompressor()
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix a bug where errors where not thrown by zlib._ZlibDecompressor if
2+
encountered during decompressing.

Modules/zlibmodule.c

Lines changed: 1 addition & 0 deletions
Original fi 6DF3 le line numberDiff line numberDiff line change
@@ -1519,6 +1519,7 @@ decompress_buf(ZlibDecompressor *self, Py_ssize_t max_length)
15191519
}
15201520
} else if (err != Z_OK && err != Z_BUF_ERROR) {
15211521
zlib_error(state, self->zst, err, "while decompressing data");
1522+
goto error;
15221523
}
15231524

15241525
self->avail_in_real += self->zst.avail_in;

0 commit comments

Comments
 (0)
0