Maraiah/tests/defl.rs

59 lines
1.6 KiB
Rust

use maraiah::marathon::defl;
include!("data/rand.rs");
#[test]
fn defl_alice()
{
const IN_1: &[u8] = include_bytes!("data/alice1.in");
const IN_2: &[u8] = include_bytes!("data/alice2.in");
const OUT: &[u8] = include_bytes!("data/alice.out");
let p = defl::load_gzip_header(IN_1).unwrap();
assert_eq!(p, 0x14);
let b = &IN_1[p..];
assert_eq!(defl::load_deflate(b).unwrap().1, OUT.to_vec());
let p = defl::load_gzip_header(IN_2).unwrap();
assert_eq!(p, 0x14);
let b = &IN_2[p..];
assert_eq!(defl::load_deflate(b).unwrap().1, OUT.to_vec());
}
#[test]
fn defl_must_succeed()
{
assert!(defl::load_gzip_header(include_bytes!("data/gzipok1.bin")).is_ok());
assert!(defl::load_gzip_header(include_bytes!("data/gzipok2.bin")).is_ok());
assert!(defl::load_gzip_header(include_bytes!("data/gzipok3.bin")).is_ok());
}
#[test]
fn defl_must_not_succeed()
{
for inp in &RANDOM {
assert!(defl::load_gzip_header(inp).is_err());
}
assert!(defl::load_gzip_header(include_bytes!("data/gzbad1.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad2.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad3.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad4.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad5.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad6.bin")).is_err());
assert!(defl::load_gzip_header(include_bytes!("data/gzbad7.bin")).is_err());
}
#[test]
#[allow(unused_must_use)]
fn defl_must_not_panic()
{
for inp in &RANDOM {
defl::load_deflate(inp);
}
}
// EOF