blob: c0ef355e1a4d368491e2928aecf91b843ab68c58 [file] [log] [blame]
#![cfg(test)]
#[cfg(feature = "gzip")]
use flate2::read::GzDecoder;
fn get_test_file_data(name: &str) -> Vec<u8> {
use std::fs::File;
use std::io::Read;
let mut input = Vec::new();
let mut f = File::open(name).unwrap();
f.read_to_end(&mut input).unwrap();
input
}
pub fn get_test_data() -> Vec<u8> {
use std::env;
let path = env::var("TEST_FILE").unwrap_or("tests/pg11.txt".to_string());
get_test_file_data(&path)
}
/// Helper function to decompress into a `Vec<u8>`
pub fn decompress_to_end(input: &[u8]) -> Vec<u8> {
// use std::str;
// let mut inflater = super::inflate::InflateStream::new();
// let mut out = Vec::new();
// let mut n = 0;
// println!("input len {}", input.len());
// while n < input.len() {
// let res = inflater.update(&input[n..]) ;
// if let Ok((num_bytes_read, result)) = res {
// println!("result len {}, bytes_read {}", result.len(), num_bytes_read);
// n += num_bytes_read;
// out.extend(result);
// } else {
// println!("Output: `{}`", str::from_utf8(&out).unwrap());
// println!("Output decompressed: {}", out.len());
// res.unwrap();
// }
//
// }
// out
use std::io::Read;
use flate2::read::DeflateDecoder;
let mut result = Vec::new();
let i = &input[..];
let mut e = DeflateDecoder::new(i);
let res = e.read_to_end(&mut result);
if let Ok(_) = res {
// println!("{} bytes decompressed successfully", n);
} else {
println!("result size: {}", result.len());
res.unwrap();
}
result
}
#[cfg(feature = "gzip")]
pub fn decompress_gzip(compressed: &[u8]) -> (GzDecoder<&[u8]>, Vec<u8>) {
use std::io::Read;
let mut e = GzDecoder::new(&compressed[..]).unwrap();
let mut result = Vec::new();
e.read_to_end(&mut result).unwrap();
(e, result)
}
pub fn decompress_zlib(compressed: &[u8]) -> Vec<u8> {
use std::io::Read;
use flate2::read::ZlibDecoder;
let mut e = ZlibDecoder::new(&compressed[..]);
let mut result = Vec::new();
e.read_to_end(&mut result).unwrap();
result
}