diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/files/mod.rs | 25 | ||||
-rw-r--r-- | tests/lib.rs | 46 |
2 files changed, 71 insertions, 0 deletions
diff --git a/tests/files/mod.rs b/tests/files/mod.rs new file mode 100644 index 0000000..5b25e90 --- /dev/null +++ b/tests/files/mod.rs @@ -0,0 +1,25 @@ +extern crate flate2; + +use std::fs::File; +use std::path::Path; +use std::io::{BufReader, Read, Write}; + +use self::flate2::FlateReadExt; + +#[allow(dead_code)] +pub fn read(path: &str) -> Vec<u8> { + let path = Path::new("tests").join("input").join(&format!("{}.gz", path)); + let size = path.metadata().expect("Couldn't determine filesize").len(); + let mut out = Vec::with_capacity(size as usize); + let mut input = BufReader::new(File::open(path).expect("Couldn't open file")) + .gz_decode() + .expect("Couldn't decode GZ stream"); + input.read_to_end(&mut out).expect("Couldn't read data"); + out +} + +#[allow(dead_code)] +pub fn write<P: AsRef<Path>>(p: P, b: &[u8]) { + let mut out = File::create(p).expect("Couldn't create file"); + out.write_all(b).expect("Couldn't write data"); +} diff --git a/tests/lib.rs b/tests/lib.rs new file mode 100644 index 0000000..d236f49 --- /dev/null +++ b/tests/lib.rs @@ -0,0 +1,46 @@ +extern crate ilc; + +use std::default::Default; +use std::io::Cursor; + +use ilc::*; + +mod files; + +#[test] +fn identity() { + let original = files::read("2016-02-26.log"); + let mut output = Vec::new(); + + convert(&Context::default(), + &mut (&original as &[u8]), + &mut Energymech, + &mut output, + &Energymech) + .expect("Conversion failed"); + + files::write("identity.out", &output); + + // don't assert_eq!, as the failed ouput doesn't help anyone + assert!(&original == &output); +} + +/* #[test] + * fn merge() { + * let part1 = Cursor::new(files::read("2016-02-26.log.1")); + * let part2 = Cursor::new(files::read("2016-02-26.log.2")); + * + * let mut output = Vec::new(); + * + * merge(&Context::default(), + * vec![&mut part1, &mut part2], + * &mut Energymech, + * &mut output, + * &Energymech) + * .expect("Merge failed"); + * + * files::write("merged.out", &output); + * + * let original = files::read("2016-02-26.log"); + * assert!(&original == &output); + * } */ |