diff options
author | Andrew Gallant <jamslam@gmail.com> | 2019-01-26 14:36:34 -0500 |
---|---|---|
committer | Andrew Gallant <jamslam@gmail.com> | 2019-01-26 14:39:40 -0500 |
commit | 31d3e241306f305c1cb94e1882511da2b48dcd36 (patch) | |
tree | 9e7ca2b52a93780a20585356ce6cac98ac8db1c2 /tests | |
parent | bf842dbc7fba45befe9b0d9e28f94336c809c9e3 (diff) |
args: prevent panicking in 'rg -h | rg'
Previously, we relied on clap to handle printing either an error
message, or --help/--version output, in addition to setting the exit
status code. Unfortunately, for --help/--version output, clap was
panicking if the write failed, which can happen in fairly common
scenarios via a broken pipe error. e.g., `rg -h | head`.
We fix this by using clap's "safe" API and doing the printing ourselves.
We also set the exit code to `2` when an invalid command has been given.
Fixes #1125 and partially addresses #1159
Diffstat (limited to 'tests')
-rw-r--r-- | tests/regression.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/regression.rs b/tests/regression.rs index 15dbcad7..d547c7e5 100644 --- a/tests/regression.rs +++ b/tests/regression.rs @@ -592,6 +592,11 @@ rgtest!(r1130, |dir: Dir, mut cmd: TestCommand| { ); }); +// See: https://github.com/BurntSushi/ripgrep/issues/1159 +rgtest!(r1159, |_: Dir, mut cmd: TestCommand| { + cmd.arg("--wat").assert_exit_code(2); +}); + // See: https://github.com/BurntSushi/ripgrep/issues/1163 rgtest!(r1163, |dir: Dir, mut cmd: TestCommand| { dir.create("bom.txt", "\u{FEFF}test123\ntest123"); |