1 use std::io::{Read, Write};
2 
3 #[test]
deflate_decoder_empty_read()4 fn deflate_decoder_empty_read() {
5     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
6     let mut encoder =
7         flate2::write::DeflateEncoder::new(Vec::new(), flate2::Compression::default());
8     encoder.write_all(original).unwrap();
9     let encoded: Vec<u8> = encoder.finish().unwrap();
10     let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice());
11     assert_eq!(decoder.read(&mut []).unwrap(), 0);
12     let mut decoded = Vec::new();
13     decoder.read_to_end(&mut decoded).unwrap();
14     assert_eq!(decoded.as_slice(), original);
15 }
16 
17 #[test]
deflate_encoder_empty_read()18 fn deflate_encoder_empty_read() {
19     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
20     let mut encoder = flate2::read::DeflateEncoder::new(original, flate2::Compression::default());
21     assert_eq!(encoder.read(&mut []).unwrap(), 0);
22     let mut encoded = Vec::new();
23     encoder.read_to_end(&mut encoded).unwrap();
24     let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice());
25     let mut decoded = Vec::new();
26     decoder.read_to_end(&mut decoded).unwrap();
27     assert_eq!(decoded.as_slice(), original);
28 }
29 
30 #[test]
gzip_decoder_empty_read()31 fn gzip_decoder_empty_read() {
32     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
33     let mut encoder = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default());
34     encoder.write_all(original).unwrap();
35     let encoded: Vec<u8> = encoder.finish().unwrap();
36     let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice());
37     assert_eq!(decoder.read(&mut []).unwrap(), 0);
38     let mut decoded = Vec::new();
39     decoder.read_to_end(&mut decoded).unwrap();
40     assert_eq!(decoded.as_slice(), original);
41 }
42 
43 #[test]
gzip_encoder_empty_read()44 fn gzip_encoder_empty_read() {
45     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
46     let mut encoder = flate2::read::GzEncoder::new(original, flate2::Compression::default());
47     assert_eq!(encoder.read(&mut []).unwrap(), 0);
48     let mut encoded = Vec::new();
49     encoder.read_to_end(&mut encoded).unwrap();
50     let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice());
51     let mut decoded = Vec::new();
52     decoder.read_to_end(&mut decoded).unwrap();
53     assert_eq!(decoded.as_slice(), original);
54 }
55 
56 #[test]
zlib_decoder_empty_read()57 fn zlib_decoder_empty_read() {
58     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
59     let mut encoder = flate2::write::ZlibEncoder::new(Vec::new(), flate2::Compression::default());
60     encoder.write_all(original).unwrap();
61     let encoded: Vec<u8> = encoder.finish().unwrap();
62     let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice());
63     assert_eq!(decoder.read(&mut []).unwrap(), 0);
64     let mut decoded = Vec::new();
65     decoder.read_to_end(&mut decoded).unwrap();
66     assert_eq!(decoded.as_slice(), original);
67 }
68 
69 #[test]
zlib_encoder_empty_read()70 fn zlib_encoder_empty_read() {
71     let original: &[u8] = b"Lorem ipsum dolor sit amet.";
72     let mut encoder = flate2::read::ZlibEncoder::new(original, flate2::Compression::default());
73     assert_eq!(encoder.read(&mut []).unwrap(), 0);
74     let mut encoded = Vec::new();
75     encoder.read_to_end(&mut encoded).unwrap();
76     let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice());
77     let mut decoded = Vec::new();
78     decoder.read_to_end(&mut decoded).unwrap();
79     assert_eq!(decoded.as_slice(), original);
80 }
81