1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 11:37:44 +00:00

timeout: give usage error on invalid time interval

This commit is contained in:
Jeffrey Finkelstein 2022-03-20 15:16:03 -04:00
parent 04b219bdef
commit e849aaf846
2 changed files with 10 additions and 2 deletions

View file

@ -19,7 +19,7 @@ use std::io::ErrorKind;
use std::process::{self, Child, Stdio}; use std::process::{self, Child, Stdio};
use std::time::Duration; use std::time::Duration;
use uucore::display::Quotable; use uucore::display::Quotable;
use uucore::error::{UResult, USimpleError}; use uucore::error::{UResult, USimpleError, UUsageError};
use uucore::process::ChildExt; use uucore::process::ChildExt;
use uucore::signals::{signal_by_name_or_value, signal_name_by_value}; use uucore::signals::{signal_by_name_or_value, signal_name_by_value};
use uucore::{format_usage, InvalidEncodingHandling}; use uucore::{format_usage, InvalidEncodingHandling};
@ -72,7 +72,7 @@ impl Config {
let duration = let duration =
match uucore::parse_time::from_str(options.value_of(options::DURATION).unwrap()) { match uucore::parse_time::from_str(options.value_of(options::DURATION).unwrap()) {
Ok(duration) => duration, 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); let preserve_status: bool = options.is_present(options::PRESERVE_STATUS);

View file

@ -11,6 +11,14 @@ fn test_subcommand_return_code() {
new_ucmd!().arg("1").arg("false").run().status_code(1); 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] #[test]
fn test_command_with_args() { fn test_command_with_args() {
new_ucmd!() new_ucmd!()