diff options
| author | Ralf Jung <post@ralfj.de> | 2025-09-01 07:24:13 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-01 07:24:13 +0000 |
| commit | 8236def69f1f11569c39618bf6658722ecfc9618 (patch) | |
| tree | be0675faaf1663c27a8b30f7e8dc0b19b50f2c15 /src | |
| parent | e8626a3c511e3c9b005ddae9357cafe15ed4ccc0 (diff) | |
| parent | 20a3256bc3b726f5cdc43bd16e6068e4c6fec98a (diff) | |
| download | rust-8236def69f1f11569c39618bf6658722ecfc9618.tar.gz rust-8236def69f1f11569c39618bf6658722ecfc9618.zip | |
Merge pull request #4554 from RalfJung/help
improve output for 'cargo miri test --help'
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/miri/cargo-miri/src/phases.rs | 39 |
1 files changed, 27 insertions, 12 deletions
diff --git a/src/tools/miri/cargo-miri/src/phases.rs b/src/tools/miri/cargo-miri/src/phases.rs index efb9053f69a..0716f4add9d 100644 --- a/src/tools/miri/cargo-miri/src/phases.rs +++ b/src/tools/miri/cargo-miri/src/phases.rs @@ -65,16 +65,6 @@ fn forward_patched_extern_arg(args: &mut impl Iterator<Item = String>, cmd: &mut } pub fn phase_cargo_miri(mut args: impl Iterator<Item = String>) { - // Check for version and help flags even when invoked as `cargo-miri`. - if has_arg_flag("--help") || has_arg_flag("-h") { - show_help(); - return; - } - if has_arg_flag("--version") || has_arg_flag("-V") { - show_version(); - return; - } - // Require a subcommand before any flags. // We cannot know which of those flags take arguments and which do not, // so we cannot detect subcommands later. @@ -85,11 +75,36 @@ pub fn phase_cargo_miri(mut args: impl Iterator<Item = String>) { "setup" => MiriCommand::Setup, "test" | "t" | "run" | "r" | "nextest" => MiriCommand::Forward(subcommand), "clean" => MiriCommand::Clean, - _ => + _ => { + // Check for version and help flags. + if has_arg_flag("--help") || has_arg_flag("-h") { + show_help(); + return; + } + if has_arg_flag("--version") || has_arg_flag("-V") { + show_version(); + return; + } show_error!( "`cargo miri` supports the following subcommands: `run`, `test`, `nextest`, `clean`, and `setup`." - ), + ) + } }; + if has_arg_flag("--help") || has_arg_flag("-h") { + match subcommand { + MiriCommand::Forward(verb) => { + println!("`cargo miri {verb}` supports the same flags as `cargo {verb}`:\n"); + let mut cmd = cargo(); + cmd.arg(verb); + cmd.arg("--help"); + exec(cmd); + } + _ => { + show_help(); + return; + } + } + } let verbose = num_arg_flag("-v") + num_arg_flag("--verbose"); let quiet = has_arg_flag("-q") || has_arg_flag("--quiet"); |
