From edb1eb0a76b879216e05586aac41c2352a2b4e28 Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sat, 2 Mar 2024 03:05:46 +0100 Subject: [PATCH] cksum: allow repeated flags and arguments --- src/uu/cksum/src/cksum.rs | 1 + tests/by-util/test_cksum.rs | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/src/uu/cksum/src/cksum.rs b/src/uu/cksum/src/cksum.rs index 36dfbbe1e..6cf04b797 100644 --- a/src/uu/cksum/src/cksum.rs +++ b/src/uu/cksum/src/cksum.rs @@ -365,6 +365,7 @@ pub fn uu_app() -> Command { .about(ABOUT) .override_usage(format_usage(USAGE)) .infer_long_args(true) + .args_override_self(true) .arg( Arg::new(options::FILE) .hide(true) diff --git a/tests/by-util/test_cksum.rs b/tests/by-util/test_cksum.rs index 464de9474..f07261b74 100644 --- a/tests/by-util/test_cksum.rs +++ b/tests/by-util/test_cksum.rs @@ -128,6 +128,18 @@ fn test_stdin_larger_than_128_bytes() { assert_eq!(bytes_cnt, 2058); } +#[test] +fn test_repeated_flags() { + new_ucmd!() + .arg("-a") + .arg("sha1") + .arg("--algo=sha256") + .arg("-a=md5") + .arg("lorem_ipsum.txt") + .succeeds() + .stdout_is_fixture("md5_single_file.expected"); +} + #[test] fn test_algorithm_single_file() { for algo in ALGOS { @@ -291,6 +303,20 @@ fn test_length_is_zero() { .stdout_is_fixture("length_is_zero.expected"); } +#[test] +fn test_length_repeated() { + new_ucmd!() + .arg("--length=10") + .arg("--length=123456") + .arg("--length=0") + .arg("--algorithm=blake2b") + .arg("lorem_ipsum.txt") + .arg("alice_in_wonderland.txt") + .succeeds() + .no_stderr() + .stdout_is_fixture("length_is_zero.expected"); +} + #[test] fn test_raw_single_file() { for algo in ALGOS {