From c39c917db7039e5f664c803293461e952d11d141 Mon Sep 17 00:00:00 2001 From: Jeffrey Finkelstein Date: Sun, 20 Mar 2022 15:21:50 -0400 Subject: [PATCH] sleep: give usage error on invalid time interval For example, $ sleep xyz sleep: invalid time interval 'xyz' Try 'sleep --help' for more information. This matches the behavior of GNU sleep. --- src/uu/sleep/src/sleep.rs | 4 ++-- tests/by-util/test_sleep.rs | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/uu/sleep/src/sleep.rs b/src/uu/sleep/src/sleep.rs index 385f2017c..4d5095c31 100644 --- a/src/uu/sleep/src/sleep.rs +++ b/src/uu/sleep/src/sleep.rs @@ -9,7 +9,7 @@ use std::thread; use std::time::Duration; use uucore::{ - error::{UResult, USimpleError}, + error::{UResult, UUsageError}, format_usage, }; @@ -64,7 +64,7 @@ fn sleep(args: &[&str]) -> UResult<()> { Duration::new(0, 0), |result, arg| match uucore::parse_time::from_str(&arg[..]) { Ok(m) => Ok(m.saturating_add(result)), - Err(f) => Err(USimpleError::new(1, f)), + Err(f) => Err(UUsageError::new(1, f)), }, )?; thread::sleep(sleep_dur); diff --git a/tests/by-util/test_sleep.rs b/tests/by-util/test_sleep.rs index d33143ae0..6c3f940e8 100644 --- a/tests/by-util/test_sleep.rs +++ b/tests/by-util/test_sleep.rs @@ -3,6 +3,14 @@ use crate::common::util::*; use std::time::{Duration, Instant}; +#[test] +fn test_invalid_time_interval() { + new_ucmd!() + .arg("xyz") + .fails() + .usage_error("invalid time interval 'xyz'"); +} + #[test] fn test_sleep_no_suffix() { let millis_100 = Duration::from_millis(100);