From 2c6bbcf71628d20d1cec270a3479d58b098771f3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 12 Mar 2022 00:33:18 +0100 Subject: [PATCH] nproc: support --ignore=' 1' as GNU --- src/uu/nproc/src/nproc.rs | 2 +- tests/by-util/test_nproc.rs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/uu/nproc/src/nproc.rs b/src/uu/nproc/src/nproc.rs index de8f0c3ed..72ae9cd65 100644 --- a/src/uu/nproc/src/nproc.rs +++ b/src/uu/nproc/src/nproc.rs @@ -33,7 +33,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> { let matches = uu_app().get_matches_from(args); let mut ignore = match matches.value_of(OPT_IGNORE) { - Some(numstr) => match numstr.parse() { + Some(numstr) => match numstr.trim().parse() { Ok(num) => num, Err(e) => { return Err(USimpleError::new( diff --git a/tests/by-util/test_nproc.rs b/tests/by-util/test_nproc.rs index abf758829..43cfaa2d7 100644 --- a/tests/by-util/test_nproc.rs +++ b/tests/by-util/test_nproc.rs @@ -33,15 +33,22 @@ fn test_nproc_all_omp() { #[test] fn test_nproc_ignore() { let result = new_ucmd!().succeeds(); - let nproc: u8 = result.stdout_str().trim().parse().unwrap(); - if nproc > 1 { + let nproc_total: u8 = result.stdout_str().trim().parse().unwrap(); + if nproc_total > 1 { // Ignore all CPU but one let result = TestScenario::new(util_name!()) .ucmd_keepenv() .arg("--ignore") - .arg((nproc - 1).to_string()) + .arg((nproc_total - 1).to_string()) .succeeds(); let nproc: u8 = result.stdout_str().trim().parse().unwrap(); assert!(nproc == 1); + // Ignore all CPU but one with a string + let result = TestScenario::new(util_name!()) + .ucmd_keepenv() + .arg("--ignore= 1") + .succeeds(); + let nproc: u8 = result.stdout_str().trim().parse().unwrap(); + assert!(nproc_total - 1 == nproc); } }