mod util; use util::*; use anyhow::Result; use firedbg_rust_debugger::{Bytes, Debugger, EventStream}; use sea_streamer::{Buffer, Consumer, Message, Producer}; #[tokio::test] async fn main() -> Result<()> { let testcase = "more_result_err"; let (producer, consumer) = setup(testcase).await?; let debugger_params = debugger_params_from_file(testcase); Debugger::run(debugger_params, producer.clone()); producer.end().await?; let expected = vec![ Expected::FnCall { name: "main".into(), args: vec![], }, Expected::FnCall { name: "capture".into(), args: vec![ "1.1f64".into(), "core::result::Result::<(), ()>::Err(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), ()>::Err(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "1.2f64".into(), "core::result::Result::<(), ()>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), ()>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "2.1f64".into(), "core::result::Result::<(), bool>::Err(false)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), bool>::Err(false)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "2.2f64".into(), "core::result::Result::<(), bool>::Err(true)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), bool>::Err(true)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "2.3f64".into(), "core::result::Result::<(), bool>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), bool>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "3.1f64".into(), "core::result::Result::<(), i8>::Err(-22i8)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i8>::Err(-22i8)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "3.2f64".into(), "core::result::Result::<(), i8>::Err(22i8)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i8>::Err(22i8)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "3.3f64".into(), "core::result::Result::<(), i8>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i8>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "4.1f64".into(), "core::result::Result::<(), u8>::Err(250u8)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u8>::Err(250u8)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "4.2f64".into(), "core::result::Result::<(), u8>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u8>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "5.1f64".into(), "core::result::Result::<(), i16>::Err(-22222i16)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i16>::Err(-22222i16)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "5.2f64".into(), "core::result::Result::<(), i16>::Err(22222i16)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i16>::Err(22222i16)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "5.3f64".into(), "core::result::Result::<(), i16>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i16>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "6.1f64".into(), "core::result::Result::<(), u16>::Err(65432u16)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u16>::Err(65432u16)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "6.2f64".into(), "core::result::Result::<(), u16>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u16>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "7.1f64".into(), "core::result::Result::<(), i32>::Err(-222_222i32)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i32>::Err(-222_222i32)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "7.2f64".into(), "core::result::Result::<(), i32>::Err(222_222i32)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i32>::Err(222_222i32)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "7.3f64".into(), "core::result::Result::<(), i32>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i32>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "8.1f64".into(), "core::result::Result::<(), u32>::Err(432_432u32)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u32>::Err(432_432u32)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "8.2f64".into(), "core::result::Result::<(), u32>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u32>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "9.1f64".into(), "core::result::Result::<(), i64>::Err(-22_222_222_222i64)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i64>::Err(-22_222_222_222i64)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "9.2f64".into(), "core::result::Result::<(), i64>::Err(22_222_222_222i64)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i64>::Err(22_222_222_222i64)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "9.3f64".into(), "core::result::Result::<(), i64>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i64>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "10.1f64".into(), "core::result::Result::<(), u64>::Err(23_232_232_232u64)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u64>::Err(23_232_232_232u64)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "10.2f64".into(), "core::result::Result::<(), u64>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u64>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "11.1f64".into(), "core::result::Result::<(), isize>::Err(-22_222_222_222isize)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), isize>::Err(-22_222_222_222isize)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "11.2f64".into(), "core::result::Result::<(), isize>::Err(22_222_222_222isize)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), isize>::Err(22_222_222_222isize)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "11.3f64".into(), "core::result::Result::<(), isize>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), isize>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "12.1f64".into(), "core::result::Result::<(), usize>::Err(23_232_232_232usize)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), usize>::Err(23_232_232_232usize)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "12.2f64".into(), "core::result::Result::<(), usize>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), usize>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "13.1f64".into(), "core::result::Result::<(), i128>::Err(-22_222_222_222_222_222_222i128)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i128>::Err(-22_222_222_222_222_222_222i128)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "13.2f64".into(), "core::result::Result::<(), i128>::Err(22_222_222_222_222_222_222i128)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i128>::Err(22_222_222_222_222_222_222i128)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "13.3f64".into(), "core::result::Result::<(), i128>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), i128>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "14.1f64".into(), "core::result::Result::<(), u128>::Err(33_333_333_333_333_333_333u128)" .replace('_', "") .into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u128>::Err(33_333_333_333_333_333_333u128)" .replace('_', "") .into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "14.2f64".into(), "core::result::Result::<(), u128>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), u128>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "15.1f64".into(), "core::result::Result::<(), f32>::Err(111.111f32)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f32>::Err(111.111f32)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "15.2f64".into(), "core::result::Result::<(), f32>::Err(-111.111f32)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f32>::Err(-111.111f32)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "15.3f64".into(), "core::result::Result::<(), f32>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f32>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "16.1f64".into(), "core::result::Result::<(), f64>::Err(222.222f64)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f64>::Err(222.222f64)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "16.2f64".into(), "core::result::Result::<(), f64>::Err(-222.222f64)".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f64>::Err(-222.222f64)".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "16.3f64".into(), "core::result::Result::<(), f64>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), f64>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "17.1f64".into(), r#"core::result::Result::<(), &str>::Err("hello")"#.into(), ], }, Expected::FnRet { name: "capture".into(), value: r#"core::result::Result::<(), &str>::Err("hello")"#.into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "17.2f64".into(), "core::result::Result::<(), &str>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), &str>::Ok(())".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "18.1f64".into(), "core::result::Result::<(), char>::Err('🦀')".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), char>::Err('🦀')".into(), }, Expected::FnCall { name: "capture".into(), args: vec![ "18.2f64".into(), "core::result::Result::<(), char>::Ok(())".into(), ], }, Expected::FnRet { name: "capture".into(), value: "core::result::Result::<(), char>::Ok(())".into(), }, Expected::FnRet { name: "main".into(), value: "()".into(), }, ]; let mut events = Vec::new(); for i in 0..expected.len() { let payload = consumer.next().await?.message().into_bytes(); let event = EventStream::read_from(Bytes::from(payload)); println!("#{i} {:?}", event); events.push(event); } verify(testcase, events, expected); Ok(()) }