extern crate flate2; use std::io::{Read, Write}; #[test] fn deflate_decoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::write::DeflateEncoder::new(Vec::new(), flate2::Compression::default()); encoder.write_all(original).unwrap(); let encoded: Vec = encoder.finish().unwrap(); let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice()); assert_eq!(decoder.read(&mut []).unwrap(), 0); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); } #[test] fn deflate_encoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::read::DeflateEncoder::new(original, flate2::Compression::default()); assert_eq!(encoder.read(&mut []).unwrap(), 0); let mut encoded = Vec::new(); encoder.read_to_end(&mut encoded).unwrap(); let mut decoder = flate2::read::DeflateDecoder::new(encoded.as_slice()); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); } #[test] fn gzip_decoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::write::GzEncoder::new(Vec::new(), flate2::Compression::default()); encoder.write_all(original).unwrap(); let encoded: Vec = encoder.finish().unwrap(); let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice()); assert_eq!(decoder.read(&mut []).unwrap(), 0); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); } #[test] fn gzip_encoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::read::GzEncoder::new(original, flate2::Compression::default()); assert_eq!(encoder.read(&mut []).unwrap(), 0); let mut encoded = Vec::new(); encoder.read_to_end(&mut encoded).unwrap(); let mut decoder = flate2::read::GzDecoder::new(encoded.as_slice()); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); } #[test] fn zlib_decoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::write::ZlibEncoder::new(Vec::new(), flate2::Compression::default()); encoder.write_all(original).unwrap(); let encoded: Vec = encoder.finish().unwrap(); let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice()); assert_eq!(decoder.read(&mut []).unwrap(), 0); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); } #[test] fn zlib_encoder_empty_read() { let original: &[u8] = b"Lorem ipsum dolor sit amet."; let mut encoder = flate2::read::ZlibEncoder::new(original, flate2::Compression::default()); assert_eq!(encoder.read(&mut []).unwrap(), 0); let mut encoded = Vec::new(); encoder.read_to_end(&mut encoded).unwrap(); let mut decoder = flate2::read::ZlibDecoder::new(encoded.as_slice()); let mut decoded = Vec::new(); decoder.read_to_end(&mut decoded).unwrap(); assert_eq!(decoded.as_slice(), original); }