()
| 8 | |
| 9 | #[tokio::test] |
| 10 | async fn main() -> Result<()> { |
| 11 | let testcase = "return_struct"; |
| 12 | |
| 13 | let debugger_params = debugger_params_from_file(testcase); |
| 14 | |
| 15 | let (producer, consumer) = setup(testcase).await?; |
| 16 | |
| 17 | Debugger::run(debugger_params, producer.clone()); |
| 18 | |
| 19 | producer.end().await?; |
| 20 | |
| 21 | for i in 0..26 { |
| 22 | let payload = consumer.next().await?.message().into_bytes(); |
| 23 | let event = EventStream::read_from(Bytes::from(payload)); |
| 24 | // println!("#{i} {:?}", event); |
| 25 | |
| 26 | match event { |
| 27 | Event::FunctionReturn { |
| 28 | function_name, |
| 29 | return_value, |
| 30 | .. |
| 31 | } => { |
| 32 | let json = serde_json::to_string(&return_value).unwrap(); |
| 33 | assert_eq!( |
| 34 | json, |
| 35 | match i { |
| 36 | 2 => |
| 37 | r#"{"type":"Struct","typename":"return_struct::Point","fields":{"x":{"type":"Prim","typename":"i32","value":1},"y":{"type":"Prim","typename":"i32","value":2}}}"#, |
| 38 | 4 => |
| 39 | r#"{"type":"Tuple","typename":"(return_struct::Point, i32)","items":[{"type":"Struct","typename":"return_struct::Point","fields":{"x":{"type":"Prim","typename":"i32","value":1},"y":{"type":"Prim","typename":"i32","value":2}}},{"type":"Prim","typename":"i32","value":3}]}"#, |
| 40 | 6 => |
| 41 | r#"{"type":"Struct","typename":"return_struct::Vector","fields":{"x":{"type":"Prim","typename":"f64","value":1.1},"y":{"type":"Prim","typename":"f64","value":2.1}}}"#, |
| 42 | 8 => |
| 43 | r#"{"type":"Struct","typename":"return_struct::Mixed","fields":{"x":{"type":"Prim","typename":"i32","value":4},"y":{"type":"Prim","typename":"f64","value":0.1}}}"#, |
| 44 | 10 => |
| 45 | r#"{"type":"Struct","typename":"return_struct::Wrapper<return_struct::Point>","fields":{"x":{"type":"Prim","typename":"i32","value":3},"y":{"type":"Prim","typename":"i32","value":4}}}"#, |
| 46 | 12 => |
| 47 | r#"{"type":"Struct","typename":"return_struct::Coeff36","fields":{"0":{"type":"Prim","typename":"f32","value":1.1},"1":{"type":"Prim","typename":"f64","value":2.2}}}"#, |
| 48 | 14 => |
| 49 | r#"{"type":"Struct","typename":"return_struct::Coeff63","fields":{"0":{"type":"Prim","typename":"f64","value":64.1},"1":{"type":"Prim","typename":"f32","value":32.2}}}"#, |
| 50 | 16 => |
| 51 | r#"{"type":"Struct","typename":"return_struct::Coeff32","fields":{"0":{"type":"Prim","typename":"f32","value":32.1},"1":{"type":"Prim","typename":"f32","value":32.2}}}"#, |
| 52 | 18 => |
| 53 | r#"{"type":"Struct","typename":"return_struct::Coeff64","fields":{"0":{"type":"Prim","typename":"f64","value":64.1},"1":{"type":"Prim","typename":"f64","value":64.2}}}"#, |
| 54 | 20 => |
| 55 | r#"{"type":"Struct","typename":"return_struct::MapPoint","fields":{"u":{"type":"Prim","typename":"i64","value":"-22"},"v":{"type":"Prim","typename":"i64","value":"44"}}}"#, |
| 56 | 22 => |
| 57 | r#"{"type":"Struct","typename":"return_struct::Label","fields":{"s":{"type":"String","typename":"&str","value":"hello"}}}"#, |
| 58 | 24 => |
| 59 | r#"{"type":"Struct","typename":"return_struct::Long","fields":{"0":{"type":"Prim","typename":"i128","value":"22222222222222222222"}}}"#, |
| 60 | 25 => r#"{"type":"Unit"}"#, |
| 61 | i => panic!("Unexpected i {i}"), |
| 62 | } |
| 63 | ); |
| 64 | println!("[{i}] {function_name}() -> {return_value}"); |
| 65 | } |
| 66 | _ => (), |
| 67 | } |
nothing calls this directly
no test coverage detected