X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=fuzz%2Ffuzz_targets%2Fmsg_targets%2Futils.rs;h=64bfd89326b4e8d3aa1e12c2bdd6f0323d929b8e;hb=a1aaea5dc295df82fb73a4c1a998331f9e7ede4d;hp=4d355585da5d18d42dceaabdd8188953e038c3f8;hpb=4de3cfe665c0ea09266f2592f5a487bb71f0e93b;p=rust-lightning diff --git a/fuzz/fuzz_targets/msg_targets/utils.rs b/fuzz/fuzz_targets/msg_targets/utils.rs index 4d355585..64bfd893 100644 --- a/fuzz/fuzz_targets/msg_targets/utils.rs +++ b/fuzz/fuzz_targets/msg_targets/utils.rs @@ -12,21 +12,27 @@ macro_rules! test_msg { } } -#[allow(dead_code)] -#[cfg(test)] -pub fn extend_vec_from_hex(hex: &str, out: &mut Vec) { - let mut b = 0; - for (idx, c) in hex.as_bytes().iter().enumerate() { - b <<= 4; - match *c { - b'A'...b'F' => b |= c - b'A' + 10, - b'a'...b'f' => b |= c - b'a' + 10, - b'0'...b'9' => b |= c - b'0', - _ => panic!("Bad hex"), +#[macro_export] +macro_rules! test_msg_exact { + ($MsgType: path, $data: ident) => { + { + if let Ok(msg) = <$MsgType as MsgDecodable>::decode($data){ + let enc = msg.encode(); + assert_eq!(&$data[..], &enc[..]); + } } - if (idx & 1) == 1 { - out.push(b); - b = 0; + } +} + +#[macro_export] +macro_rules! test_msg_hole { + ($MsgType: path, $data: ident, $hole: expr, $hole_len: expr) => { + { + if let Ok(msg) = <$MsgType as MsgDecodable>::decode($data){ + let enc = msg.encode(); + assert_eq!(&$data[..$hole], &enc[..$hole]); + assert_eq!(&$data[$hole + $hole_len..enc.len()], &enc[$hole + $hole_len..]); + } } } }