From dcad7cf4e02a33c209f64d9d2fc5f8b6417241b4 Mon Sep 17 00:00:00 2001 From: ptweezy Date: Sat, 24 Oct 2026 12:30:59 -0400 Subject: [PATCH] Fix the raw deflate unused_data tests when test_offset is 0 no_header[:-test_offset] is empty when test_offset is 0, so the decompressor never reaches the end of the stream and the eof check skips the assertion. Slice up to len(no_header) - test_offset and assert eof. --- tests/test_igzip_lib.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/tests/test_igzip_lib.py b/tests/test_igzip_lib.py index f2ccce1b..4312d192 100644 --- a/tests/test_igzip_lib.py +++ b/tests/test_igzip_lib.py @@ -238,12 +238,13 @@ def test_igzip_decompressor_raw_deflate_unused_data_zlib(test_offset): data = zlib.compress(b"bla") no_header = data[2:] trailer = data[-4:] - raw_deflate_incomplete_trailer = no_header[:-test_offset] - true_unused_data = trailer[:-test_offset] + # no_header[:-test_offset] would be empty when test_offset is 0 + raw_deflate_incomplete_trailer = no_header[:len(no_header) - test_offset] + true_unused_data = trailer[:len(trailer) - test_offset] igzd = IgzipDecompressor(flag=DECOMP_DEFLATE) igzd.decompress(raw_deflate_incomplete_trailer) - if igzd.eof: - assert igzd.unused_data == true_unused_data + assert igzd.eof + assert igzd.unused_data == true_unused_data @pytest.mark.parametrize("test_offset", range(9)) @@ -251,12 +252,13 @@ def test_igzip_decompressor_raw_deflate_unused_data_gzip(test_offset): data = gzip.compress(b"bla") no_header = data[10:] trailer = data[-8:] - raw_deflate_incomplete_trailer = no_header[:-test_offset] - true_unused_data = trailer[:-test_offset] + # no_header[:-test_offset] would be empty when test_offset is 0 + raw_deflate_incomplete_trailer = no_header[:len(no_header) - test_offset] + true_unused_data = trailer[:len(trailer) - test_offset] igzd = IgzipDecompressor(flag=DECOMP_DEFLATE) igzd.decompress(raw_deflate_incomplete_trailer) - if igzd.eof: - assert igzd.unused_data == true_unused_data + assert igzd.eof + assert igzd.unused_data == true_unused_data @pytest.mark.parametrize(["flag", "wbits"], [(DECOMP_DEFLATE, -15),