#[macro_use] mod utils; test_cases!(gzip); #[allow(unused)] use utils::{algos::gzip::sync, InputStream}; #[cfg(feature = "futures-io")] use utils::algos::gzip::futures::bufread; #[allow(unused)] fn compress_with_header(data: &[u8]) -> Vec { use flate2::{Compression, GzBuilder}; use std::io::Write; let mut bytes = Vec::new(); { let mut gz = GzBuilder::new() .filename("hello_world.txt") .comment("test file, please delete") .extra(vec![1, 2, 3, 4]) .write(&mut bytes, Compression::fast()); gz.write_all(data).unwrap(); } bytes } #[test] #[ntest::timeout(1000)] #[cfg(feature = "futures-io")] fn gzip_bufread_decompress_with_extra_header() { let bytes = compress_with_header(&[1, 2, 3, 4, 5, 6]); let input = InputStream::from(vec![bytes]); let output = bufread::decompress(bufread::from(&input)); assert_eq!(output, &[1, 2, 3, 4, 5, 6][..]); } #[test] #[ntest::timeout(1000)] #[cfg(feature = "futures-io")] fn gzip_bufread_chunks_decompress_with_extra_header() { let bytes = compress_with_header(&[1, 2, 3, 4, 5, 6]); let input = InputStream::from(bytes.chunks(2)); let output = bufread::decompress(bufread::from(&input)); assert_eq!(output, &[1, 2, 3, 4, 5, 6][..]); }