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