diff options
Diffstat (limited to 'cli/flags.rs')
-rw-r--r-- | cli/flags.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/cli/flags.rs b/cli/flags.rs index 86a5405b2..8236d63db 100644 --- a/cli/flags.rs +++ b/cli/flags.rs @@ -101,7 +101,7 @@ pub enum DenoSubcommand { Test { doc: bool, no_run: bool, - fail_fast: Option<usize>, + fail_fast: Option<NonZeroUsize>, quiet: bool, allow_none: bool, include: Option<Vec<String>>, @@ -1047,16 +1047,9 @@ fn test_subcommand<'a, 'b>() -> App<'a, 'b> { .takes_value(true) .require_equals(true) .value_name("N") - .validator(|val: String| match val.parse::<usize>() { - Ok(val) => { - if val == 0 { - return Err( - "fail-fast should be an number greater than 0".to_string(), - ); - } - Ok(()) - } - Err(_) => Err("fail-fast should be a number".to_string()), + .validator(|val: String| match val.parse::<NonZeroUsize>() { + Ok(_) => Ok(()), + Err(_) => Err("fail-fast should be a non zero integer".to_string()), }), ) .arg( @@ -1786,7 +1779,7 @@ fn test_parse(flags: &mut Flags, matches: &clap::ArgMatches) { if let Some(value) = matches.value_of("fail-fast") { Some(value.parse().unwrap()) } else { - Some(1) + Some(NonZeroUsize::new(1).unwrap()) } } else { None @@ -3663,7 +3656,7 @@ mod tests { subcommand: DenoSubcommand::Test { no_run: false, doc: false, - fail_fast: Some(3), + fail_fast: Some(NonZeroUsize::new(3).unwrap()), filter: None, allow_none: false, quiet: false, @@ -3674,6 +3667,9 @@ mod tests { ..Flags::default() } ); + + let r = flags_from_vec(svec!["deno", "test", "--fail-fast=0"]); + assert!(r.is_err()); } #[test] |