From 5e59dd5e58a14659cd557dc43d6f5176a13fee9e Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Wed, 13 May 2026 08:39:08 +0800 Subject: Add test tool for examples and update exit code demo --- examples/example-exit-code/src/main.rs | 7 +++-- examples/test-example-async.toml | 54 ++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 examples/test-example-async.toml (limited to 'examples') diff --git a/examples/example-exit-code/src/main.rs b/examples/example-exit-code/src/main.rs index f62ad22..1fe5424 100644 --- a/examples/example-exit-code/src/main.rs +++ b/examples/example-exit-code/src/main.rs @@ -13,7 +13,7 @@ use mingling::{ macros::{chain, dispatcher, gen_program, pack, r_println, renderer}, - res::update_exit_code, + res::{exit_code, update_exit_code}, setup::ExitCodeSetup, }; @@ -21,7 +21,7 @@ fn main() { let mut program = ThisProgram::new(); program.with_dispatcher(ErrorCommand); program.with_setup(ExitCodeSetup::::default()); - program.exec(); + program.exec_and_exit(); } dispatcher!("error", ErrorCommand => ErrorEntry); @@ -35,7 +35,8 @@ fn handle_error_entry(_prev: ErrorEntry) -> NextProcess { #[renderer] fn render_error(_prev: ResultError) { - r_println!("Error!"); + let exit_code = exit_code::(); + r_println!("Exit with exit code: {}", exit_code); } gen_program!(); diff --git a/examples/test-example-async.toml b/examples/test-example-async.toml new file mode 100644 index 0000000..a63f566 --- /dev/null +++ b/examples/test-example-async.toml @@ -0,0 +1,54 @@ +[[test.example-async]] +command = "hello World" +expect.exit-code = 0 +expect.result = "Hello, World!" + +[[test.example-basic]] +command = "hello World" +expect.exit-code = 0 +expect.result = "Hello, World!" + +[[test.example-exit-code]] +command = "error" +expect.exit-code = 1 +expect.result = "Exit with exit code: 1" + +[[test.example-general-renderer]] +command = "render Bob 22" +expect.exit-code = 0 +expect.result = "Bob is 22 years old" + +[[test.example-general-renderer]] +command = "render Bob 22 --json" +expect.exit-code = 0 +expect.result = "{\"member_name\":\"Bob\",\"member_age\":22}" + +[[test.example-general-renderer]] +command = "render Bob 22 --yaml" +expect.exit-code = 0 +expect.result = "member_name: Bob\nmember_age: 22" + +[[test.example-picker]] +command = "pick Bob" +expect.exit-code = 0 +expect.result = "Picked: name = Bob, age = 20" + +[[test.example-picker]] +command = "pick Bob --age -15" +expect.exit-code = 0 +expect.result = "Picked: name = Bob, age = 0" + +[[test.example-picker]] +command = "pick --age 99" +expect.exit-code = 0 +expect.result = "No name provided." + +[[test.example-picker]] +command = "pick" +expect.exit-code = 0 +expect.result = "No name provided." + +[[test.example-picker]] +command = "pick --age 150" +expect.exit-code = 0 +expect.result = "No name provided." -- cgit