1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

basename: implement and test repeated flags and arguments

Note in particular that `args_override_self` would *NOT* work here,
since it would in all cases cause `options::NAME` to override itself,
or interfere with `trailing_var_arg`.
This commit is contained in:
Ben Wiederhake 2024-02-25 19:45:32 +01:00
parent 9441806a23
commit f905d9ce41
2 changed files with 81 additions and 67 deletions

View file

@ -202,6 +202,54 @@ fn test_invalid_arg() {
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
}
#[test]
fn test_repeated_multiple() {
new_ucmd!()
.args(&["-aa", "-a", "foo"])
.succeeds()
.stdout_is("foo\n");
}
#[test]
fn test_repeated_multiple_many() {
new_ucmd!()
.args(&["-aa", "-a", "1/foo", "q/bar", "x/y/baz"])
.succeeds()
.stdout_is("foo\nbar\nbaz\n");
}
#[test]
fn test_repeated_suffix_last() {
new_ucmd!()
.args(&["-s", ".h", "-s", ".c", "foo.c"])
.succeeds()
.stdout_is("foo\n");
}
#[test]
fn test_repeated_suffix_not_first() {
new_ucmd!()
.args(&["-s", ".h", "-s", ".c", "foo.h"])
.succeeds()
.stdout_is("foo.h\n");
}
#[test]
fn test_repeated_suffix_multiple() {
new_ucmd!()
.args(&["-as", ".h", "-a", "-s", ".c", "foo.c", "bar.c", "bar.h"])
.succeeds()
.stdout_is("foo\nbar\nbar.h\n");
}
#[test]
fn test_repeated_zero() {
new_ucmd!()
.args(&["-zz", "-z", "foo/bar"])
.succeeds()
.stdout_is("bar\0");
}
#[test]
fn test_zero_does_not_imply_multiple() {
new_ucmd!()