diff --git a/src/uu/timeout/src/timeout.rs b/src/uu/timeout/src/timeout.rs index 192892d4f..c48bee1e6 100644 --- a/src/uu/timeout/src/timeout.rs +++ b/src/uu/timeout/src/timeout.rs @@ -19,7 +19,7 @@ use std::io::ErrorKind; use std::process::{self, Child, Stdio}; use std::time::Duration; use uucore::display::Quotable; -use uucore::error::{UResult, USimpleError}; +use uucore::error::{UResult, USimpleError, UUsageError}; use uucore::process::ChildExt; use uucore::signals::{signal_by_name_or_value, signal_name_by_value}; use uucore::{format_usage, InvalidEncodingHandling}; @@ -72,7 +72,7 @@ impl Config { let duration = match uucore::parse_time::from_str(options.value_of(options::DURATION).unwrap()) { Ok(duration) => duration, - Err(err) => return Err(USimpleError::new(1, err)), + Err(err) => return Err(UUsageError::new(1, err)), }; let preserve_status: bool = options.is_present(options::PRESERVE_STATUS); diff --git a/tests/by-util/test_timeout.rs b/tests/by-util/test_timeout.rs index 96a5b6a05..ac2d3e539 100644 --- a/tests/by-util/test_timeout.rs +++ b/tests/by-util/test_timeout.rs @@ -11,6 +11,14 @@ fn test_subcommand_return_code() { new_ucmd!().arg("1").arg("false").run().status_code(1); } +#[test] +fn test_invalid_time_interval() { + new_ucmd!() + .args(&["xyz", "sleep", "0"]) + .fails() + .usage_error("invalid time interval 'xyz'"); +} + #[test] fn test_command_with_args() { new_ucmd!()