4d355585da5d18d42dceaabdd8188953e038c3f8
[rust-lightning] / fuzz / fuzz_targets / msg_targets / utils.rs
1 #![macro_use]
2
3 #[macro_export]
4 macro_rules! test_msg {
5         ($MsgType: path, $data: ident) => {
6                 {
7                         if let Ok(msg) = <$MsgType as MsgDecodable>::decode($data){
8                                 let enc = msg.encode();
9                                 assert_eq!(&$data[..enc.len()], &enc[..]);
10                         }
11                 }
12         }
13 }
14
15 #[allow(dead_code)]
16 #[cfg(test)]
17 pub fn extend_vec_from_hex(hex: &str, out: &mut Vec<u8>) {
18         let mut b = 0;
19         for (idx, c) in hex.as_bytes().iter().enumerate() {
20                 b <<= 4;
21                 match *c {
22                         b'A'...b'F' => b |= c - b'A' + 10,
23                         b'a'...b'f' => b |= c - b'a' + 10,
24                         b'0'...b'9' => b |= c - b'0',
25                         _ => panic!("Bad hex"),
26                 }
27                 if (idx & 1) == 1 {
28                         out.push(b);
29                         b = 0;
30                 }
31         }
32 }