From f99eae06caccb4540fa9e2776651280e634b8842 Mon Sep 17 00:00:00 2001 From: KAMADA Ken'ichi Date: Thu, 27 Oct 2016 20:53:07 +0900 Subject: [PATCH] Test parse_ascii(). --- src/value.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/value.rs b/src/value.rs index 4827e54..9ca76c1 100644 --- a/src/value.rs +++ b/src/value.rs @@ -80,3 +80,29 @@ fn parse_unknown<'a>(data: &'a [u8], offset: usize, count: usize) -> Value<'a> { unreachable!() } + +#[cfg(test)] +mod tests { + use super::*; + use super::parse_ascii; + + #[test] + fn ascii() { + let sets: &[(&[u8], Vec<&[u8]>)] = &[ + (b"x", vec![b""]), // malformed + (b"x\0", vec![b""]), + (b"x\0\0", vec![b"", b""]), + (b"xA", vec![b"A"]), // malformed + (b"xA\0", vec![b"A"]), + (b"xA\0B", vec![b"A", b"B"]), // malformed + (b"xA\0B\0", vec![b"A", b"B"]), + (b"xA\0\xbe\0", vec![b"A", b"\xbe"]), // not ASCII + ]; + for &(data, ref ans) in sets { + match parse_ascii(data, 1, data.len() - 1) { + Value::Ascii(v) => assert_eq!(v, *ans), + v => panic!("wrong variant {:?}", v), + } + } + } +}