|
| 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