diff --git a/tests/coreutils/basename.rs b/tests/coreutils/basename.rs index 29ee6a4..1125d2a 100644 --- a/tests/coreutils/basename.rs +++ b/tests/coreutils/basename.rs @@ -45,7 +45,7 @@ fn parse(args: &'static [&'static str]) -> Result #[test] fn name_and_suffix() { let settings = parse(&["basename", "foobar", "bar"]).unwrap(); - assert_eq!(settings.zero, false); + assert!(!settings.zero); assert_eq!(settings.names, vec!["foobar"]); assert_eq!(settings.suffix, "bar"); } @@ -53,7 +53,7 @@ fn name_and_suffix() { #[test] fn zero_name_and_suffix() { let settings = parse(&["basename", "-z", "foobar", "bar"]).unwrap(); - assert_eq!(settings.zero, true); + assert!(settings.zero); assert_eq!(settings.names, vec!["foobar"]); assert_eq!(settings.suffix, "bar"); } @@ -61,8 +61,8 @@ fn zero_name_and_suffix() { #[test] fn all_and_names() { let settings = parse(&["basename", "-a", "foobar", "bar"]).unwrap(); - assert_eq!(settings.multiple, true); - assert_eq!(settings.zero, false); + assert!(settings.multiple); + assert!(!settings.zero); assert_eq!(settings.names, vec!["foobar", "bar"]); assert_eq!(settings.suffix, ""); } @@ -70,8 +70,8 @@ fn all_and_names() { #[test] fn option_like_names() { let settings = parse(&["basename", "-a", "--", "-a", "-z", "--suffix=SUFFIX"]).unwrap(); - assert_eq!(settings.multiple, true); - assert_eq!(settings.zero, false); + assert!(settings.multiple); + assert!(!settings.zero); assert_eq!(settings.names, vec!["-a", "-z", "--suffix=SUFFIX"]); assert_eq!(settings.suffix, ""); } diff --git a/tests/coreutils/mktemp.rs b/tests/coreutils/mktemp.rs index cea0e31..42218fb 100644 --- a/tests/coreutils/mktemp.rs +++ b/tests/coreutils/mktemp.rs @@ -1,3 +1,5 @@ +use std::path::{Path, PathBuf}; + use uutils_args::{Arguments, Options}; #[derive(Clone, Arguments)] @@ -13,14 +15,14 @@ enum Arg { #[option("-q", "--quiet")] Quiet, - #[option("--suffix")] + #[option("--suffix=SUFFIX")] Suffix(String), #[option("-t")] TreatAsTemplate, - #[option("-p", "--tmpdir")] - TmpDir(Option), + #[option("-p DIR", "--tmpdir[=DIR]", default = ".".into())] + TmpDir(PathBuf), #[positional(0..=1)] Template(String), @@ -38,6 +40,9 @@ struct Settings { #[map(Arg::Quiet => true)] quiet: bool, + #[map(Arg::TmpDir(p) => Some(p))] + tmp_dir: Option, + #[map(Arg::Suffix(s) => Some(s))] suffix: Option, @@ -49,6 +54,36 @@ struct Settings { } #[test] -fn test() { - assert!(true); +fn suffix() { + let s = Settings::parse(["mktemp", "--suffix=hello"]).unwrap(); + assert_eq!(s.suffix.unwrap(), "hello"); + + let s = Settings::parse(["mktemp", "--suffix="]).unwrap(); + assert_eq!(s.suffix.unwrap(), ""); + + let s = Settings::parse(["mktemp", "--suffix="]).unwrap(); + assert_eq!(s.suffix.unwrap(), ""); + + let s = Settings::parse(["mktemp"]).unwrap(); + assert_eq!(s.suffix, None); +} + +#[test] +fn tmpdir() { + let s = Settings::parse(["mktemp", "--tmpdir"]).unwrap(); + assert_eq!(s.tmp_dir.unwrap(), Path::new(".")); + + let s = Settings::parse(["mktemp", "--tmpdir="]).unwrap(); + assert_eq!(s.tmp_dir.unwrap(), Path::new("")); + + let s = Settings::parse(["mktemp", "-p", "foo"]).unwrap(); + assert_eq!(s.tmp_dir.unwrap(), Path::new("foo")); + + let s = Settings::parse(["mktemp", "-pfoo"]).unwrap(); + assert_eq!(s.tmp_dir.unwrap(), Path::new("foo")); + + let s = Settings::parse(["mktemp", "-p", ""]).unwrap(); + assert_eq!(s.tmp_dir.unwrap(), Path::new("")); + + assert!(Settings::parse(["mktemp", "-p"]).is_err()); }