diff --git a/tests/by-util/test_chmod.rs b/tests/by-util/test_chmod.rs index bc5fd97e9..6cbe7e887 100644 --- a/tests/by-util/test_chmod.rs +++ b/tests/by-util/test_chmod.rs @@ -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("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") .arg("--verbose") .arg("-r,a+w") .arg("a") .arg("z") - .succeeds() - .stdout_contains(&"to 0333 (-wx-wx-wx)") - .stdout_contains(&"to 0222 (-w--w--w-)"); + .fails() + .stderr_is("chmod: Permission denied"); - assert_eq!(at.metadata("z/y").permissions().mode(), 0o100222); - assert_eq!(at.metadata("a/a").permissions().mode(), 0o100222); - assert_eq!(at.metadata("a/b/b").permissions().mode(), 0o100222); - assert_eq!(at.metadata("a/b/c/c").permissions().mode(), 0o100222); + assert_eq!(at.metadata("z/y").permissions().mode(), 0o100444); + assert_eq!(at.metadata("a/a").permissions().mode(), 0o100444); + assert_eq!(at.metadata("a/b/b").permissions().mode(), 0o100444); + assert_eq!(at.metadata("a/b/c/c").permissions().mode(), 0o100444); println!("mode {:o}", at.metadata("a").permissions().mode()); assert_eq!(at.metadata("a").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"), perms).unwrap(); - ucmd.arg("-R") - .arg("u+r") - .arg("a") - .succeeds(); + ucmd.arg("-R").arg("u+r").arg("a").succeeds(); assert_eq!(at.metadata("a").permissions().mode(), 0o40711); assert_eq!(at.metadata("a/b").permissions().mode(), 0o40711);