mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
chmod: handle -octal and -[rwx]
The main issue is that -octal or -[rwx] is interpreted as an option by getopts. Search the args for such a pattern, remove it before parsing and manually handle it afterwards. Fixes #788.
This commit is contained in:
parent
9005ae7dbf
commit
2686ea75d7
2 changed files with 35 additions and 7 deletions
|
@ -59,10 +59,9 @@ fn test_chmod_octal() {
|
|||
TestCase{args: vec!{"0700", TEST_FILE}, before: 0o000, after: 0o700},
|
||||
TestCase{args: vec!{"0070", TEST_FILE}, before: 0o000, after: 0o070},
|
||||
TestCase{args: vec!{"0007", TEST_FILE}, before: 0o000, after: 0o007},
|
||||
// Known failues: #788
|
||||
// TestCase{args: vec!{"-0700", TEST_FILE}, before: 0o700, after: 0o000},
|
||||
// TestCase{args: vec!{"-0070", TEST_FILE}, before: 0o060, after: 0o000},
|
||||
// TestCase{args: vec!{"-0007", TEST_FILE}, before: 0o001, after: 0o000},
|
||||
TestCase{args: vec!{"-0700", TEST_FILE}, before: 0o700, after: 0o000},
|
||||
TestCase{args: vec!{"-0070", TEST_FILE}, before: 0o060, after: 0o000},
|
||||
TestCase{args: vec!{"-0007", TEST_FILE}, before: 0o001, after: 0o000},
|
||||
TestCase{args: vec!{"+0100", TEST_FILE}, before: 0o600, after: 0o700},
|
||||
TestCase{args: vec!{"+0020", TEST_FILE}, before: 0o050, after: 0o070},
|
||||
TestCase{args: vec!{"+0004", TEST_FILE}, before: 0o003, after: 0o007},
|
||||
|
@ -77,6 +76,9 @@ fn test_chmod_ugoa() {
|
|||
TestCase{args: vec!{"g=rwx", TEST_FILE}, before: 0o000, after: 0o070},
|
||||
TestCase{args: vec!{"o=rwx", TEST_FILE}, before: 0o000, after: 0o007},
|
||||
TestCase{args: vec!{"a=rwx", TEST_FILE}, before: 0o000, after: 0o777},
|
||||
TestCase{args: vec!{"-r", TEST_FILE}, before: 0o777, after: 0o333},
|
||||
TestCase{args: vec!{"-w", TEST_FILE}, before: 0o777, after: 0o555},
|
||||
TestCase{args: vec!{"-x", TEST_FILE}, before: 0o777, after: 0o666},
|
||||
};
|
||||
run_tests(tests);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue