diff --git a/src/uu/cut/src/cut.rs b/src/uu/cut/src/cut.rs index 2a3196d00..f3f87beef 100644 --- a/src/uu/cut/src/cut.rs +++ b/src/uu/cut/src/cut.rs @@ -11,7 +11,7 @@ use std::fs::File; use std::io::{stdin, stdout, BufReader, BufWriter, IsTerminal, Read, Write}; use std::path::Path; use uucore::display::Quotable; -use uucore::error::{FromIo, UResult, USimpleError}; +use uucore::error::{set_exit_code, FromIo, UResult, USimpleError}; use uucore::line_ending::LineEnding; use self::searcher::Searcher; @@ -319,6 +319,7 @@ fn cut_files(mut filenames: Vec, mode: &Mode) { if path.is_dir() { show_error!("{}: Is a directory", filename.maybe_quote()); + set_exit_code(1); continue; } diff --git a/tests/by-util/test_cut.rs b/tests/by-util/test_cut.rs index 57e6666d3..bfa0885ce 100644 --- a/tests/by-util/test_cut.rs +++ b/tests/by-util/test_cut.rs @@ -212,20 +212,25 @@ fn test_zero_terminated_only_delimited() { } #[test] -fn test_directory_and_no_such_file() { +fn test_is_a_directory() { let (at, mut ucmd) = at_and_ucmd!(); at.mkdir("some"); ucmd.arg("-b1") .arg("some") - .run() + .fails() + .code_is(1) .stderr_is("cut: some: Is a directory\n"); +} +#[test] +fn test_no_such_file() { new_ucmd!() .arg("-b1") .arg("some") - .run() + .fails() + .code_is(1) .stderr_is("cut: some: No such file or directory\n"); }