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

test_chmod: update expected results of test_chmod_recursive

The test succeeds before because the files are read before the permission change and that's inconsistent with GNU chmod.
This commit is contained in:
xxyzz 2022-02-14 08:26:14 +08:00
parent 9083f236da
commit 3272a590db
No known key found for this signature in database
GPG key ID: F796163E6DCFEE9D

View file

@ -334,19 +334,20 @@ fn test_chmod_recursive() {
make_file(&at.plus_as_string("a/b/c/c"), 0o100444); make_file(&at.plus_as_string("a/b/c/c"), 0o100444);
make_file(&at.plus_as_string("z/y"), 0o100444); make_file(&at.plus_as_string("z/y"), 0o100444);
// only the permissions of folder `a` and `z` are changed
// folder can't be read after read permission is removed
ucmd.arg("-R") ucmd.arg("-R")
.arg("--verbose") .arg("--verbose")
.arg("-r,a+w") .arg("-r,a+w")
.arg("a") .arg("a")
.arg("z") .arg("z")
.succeeds() .fails()
.stdout_contains(&"to 0333 (-wx-wx-wx)") .stderr_is("chmod: Permission denied");
.stdout_contains(&"to 0222 (-w--w--w-)");
assert_eq!(at.metadata("z/y").permissions().mode(), 0o100222); assert_eq!(at.metadata("z/y").permissions().mode(), 0o100444);
assert_eq!(at.metadata("a/a").permissions().mode(), 0o100222); assert_eq!(at.metadata("a/a").permissions().mode(), 0o100444);
assert_eq!(at.metadata("a/b/b").permissions().mode(), 0o100222); assert_eq!(at.metadata("a/b/b").permissions().mode(), 0o100444);
assert_eq!(at.metadata("a/b/c/c").permissions().mode(), 0o100222); assert_eq!(at.metadata("a/b/c/c").permissions().mode(), 0o100444);
println!("mode {:o}", at.metadata("a").permissions().mode()); println!("mode {:o}", at.metadata("a").permissions().mode());
assert_eq!(at.metadata("a").permissions().mode(), 0o40333); assert_eq!(at.metadata("a").permissions().mode(), 0o40333);
assert_eq!(at.metadata("z").permissions().mode(), 0o40333); assert_eq!(at.metadata("z").permissions().mode(), 0o40333);
@ -367,10 +368,7 @@ fn test_chmod_recursive_read_permission() {
set_permissions(at.plus_as_string("a/b"), perms.clone()).unwrap(); set_permissions(at.plus_as_string("a/b"), perms.clone()).unwrap();
set_permissions(at.plus_as_string("a"), perms).unwrap(); set_permissions(at.plus_as_string("a"), perms).unwrap();
ucmd.arg("-R") ucmd.arg("-R").arg("u+r").arg("a").succeeds();
.arg("u+r")
.arg("a")
.succeeds();
assert_eq!(at.metadata("a").permissions().mode(), 0o40711); assert_eq!(at.metadata("a").permissions().mode(), 0o40711);
assert_eq!(at.metadata("a/b").permissions().mode(), 0o40711); assert_eq!(at.metadata("a/b").permissions().mode(), 0o40711);