From: Ian Jackson Date: Sun, 22 Aug 2021 21:58:07 +0000 (+0100) Subject: fix tests X-Git-Tag: hippotat/1.0.0~82 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=e05428b7e3628170585393e1662fa560995b6b16;p=hippotat.git fix tests Signed-off-by: Ian Jackson --- diff --git a/src/slip.rs b/src/slip.rs index a2beaf0..cd1e9a0 100644 --- a/src/slip.rs +++ b/src/slip.rs @@ -16,7 +16,7 @@ pub enum PacketError { #[error("truncated, IPv{vsn}, len={len}")] Truncated { len: usize, vsn: u8 }, } -pub trait SlipMime { const CONV_TO: Option; } +pub trait SlipMime: Copy { const CONV_TO: Option; } #[derive(Copy,Clone,Debug)] pub struct Slip2Mime; #[derive(Copy,Clone,Debug)] pub struct Mime2Slip; #[derive(Copy,Clone,Debug)] pub struct SlipNoConv; @@ -199,45 +199,52 @@ impl Debug for DumpHex<'_> { } } -#[test] -fn mime_slip_to_mime() { +#[tokio::test] +async fn mime_slip_to_mime() { use PacketError as PE; const MTU: u32 = 10; - fn chk(i: &[u8], exp_p: &[&[u8]], exp_e: &[PacketError]) { + async fn chk(m: M, i: &[u8], + exp_p: &[&[u8]], + exp_e: &[PacketError]) + { dbg!(M::CONV_TO, DumpHex(i)); let mut got_e = vec![]; let mut got_p = vec![]; - check::<_,_,_,M>(MTU, i, &mut got_p, |_|Ok(()), |e| got_e.push(e)); + processn(m, MTU, i, + |_|Ok(()), + |(p,())| { got_p.push(p); async { Ok(()) } }, + |e| Ok::<_,SlipFramesError>(got_e.push(e))) + .await.unwrap(); assert_eq!( got_p.iter().map(|b| DumpHex(b)).collect_vec(), exp_p.iter().map(|b| DumpHex(b)).collect_vec() ); assert_eq!( got_e, exp_e ); } - chk:: - ( &[ SLIP_END, SLIP_ESC, SLIP_ESC_END, b'-', b'X' ], + chk(Slip2Mime, + &[ SLIP_END, SLIP_ESC, SLIP_ESC_END, b'-', b'X' ], &[ &[ b'-', SLIP_ESC_END, SLIP_ESC, b'X' ] ], - &[ PE::Empty ]); + &[ PE::Empty ]).await; - chk:: - ( &[ SLIP_END, SLIP_ESC, b'y' ], &[], - &[ PE::Empty, PE::SLIP ]); + chk(Slip2Mime, + &[ SLIP_END, SLIP_ESC, b'y' ], &[], + &[ PE::Empty, PE::SLIP ]).await; - chk:: - ( &[ SLIP_END, b'-', b'y' ], + chk(Slip2Mime, + &[ SLIP_END, b'-', b'y' ], &[ &[ SLIP_ESC, b'y' ] ], - &[ PE::Empty ]); + &[ PE::Empty ]).await; - chk:: - ( &[b'x'; 20], + chk(Slip2Mime, + &[b'x'; 20], &[ ], - &[ PE::MTU { len: 20, mtu: MTU } ]); + &[ PE::MTU { len: 20, mtu: MTU } ]).await; - chk:: - ( &[ SLIP_END, SLIP_ESC, SLIP_ESC_END, b'-', b'X' ], + chk(SlipNoConv, + &[ SLIP_END, SLIP_ESC, SLIP_ESC_END, b'-', b'X' ], &[ &[ SLIP_ESC, SLIP_ESC_END, b'-', b'X' ] ], - &[ PE::Empty, ]); + &[ PE::Empty, ]).await; }