Skip to content

Commit 8599909

Browse files
committed
Add failing test
1 parent 1a28821 commit 8599909

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

tests/decompress_chunk.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#[test]
2+
fn deflate_decoder_partial() {
3+
// Decompresses to
4+
// "* QUOTAROOT INBOX \"User quota\"\r\n* QUOTA \"User quota\" (STORAGE 76 307200)\r\nA0001 OK Getquotaroot completed (0.001 + 0.000 secs).\r\n"
5+
let input = vec![
6+
210, 82, 8, 12, 245, 15, 113, 12, 242, 247, 15, 81, 240, 244, 115, 242, 143, 80, 80, 10,
7+
45, 78, 45, 82, 40, 44, 205, 47, 73, 84, 226, 229, 210, 130, 200, 163, 136, 42, 104, 4,
8+
135, 248, 7, 57, 186, 187, 42, 152, 155, 41, 24, 27, 152, 27, 25, 24, 104, 242, 114, 57,
9+
26, 24, 24, 24, 42, 248, 123, 43, 184, 167, 150, 128, 213, 21, 229, 231, 151, 40, 36, 231,
10+
231, 22, 228, 164, 150, 164, 166, 40, 104, 24, 232, 129, 20, 104, 43, 128, 104, 3, 133,
11+
226, 212, 228, 98, 77, 61, 94, 46, 0, 0, 0, 0, 255, 255,
12+
];
13+
14+
// Create very small output buffer.
15+
let mut output = vec![0; 8];
16+
17+
let zlib_header = false;
18+
let mut decompress = flate2::Decompress::new(zlib_header);
19+
20+
let flush_decompress = flate2::FlushDecompress::None;
21+
let status = decompress
22+
.decompress(&input, &mut output, flush_decompress)
23+
.unwrap();
24+
assert_eq!(status, flate2::Status::Ok);
25+
26+
// Should not consume everything, there is not enough space in the buffer for the output.
27+
assert_ne!(decompress.total_in(), input.len() as u64);
28+
}

0 commit comments

Comments
 (0)