MCPcopy Create free account
hub / github.com/SeaQL/FireDBG.for.Rust / main

Function main

debugger/tests/return_struct.rs:10–71  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

8
9#[tokio::test]
10async 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 }

Callers

nothing calls this directly

Calls 6

setupFunction · 0.85
into_bytesMethod · 0.80
nextMethod · 0.80
runFunction · 0.50
endMethod · 0.45

Tested by

no test coverage detected