Skip to content

Commit da585d1

Browse files
committed
tests/permitting: allow root not having chown permission too
Probably related to not having a user `1` available on the machine.
1 parent dbac0f0 commit da585d1

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

src/tests/permitting.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,12 @@ fn chown_keyring() {
146146
let mut keyring = utils::new_test_keyring();
147147

148148
if *UID == 0 {
149-
keyring.chown(1).unwrap();
150-
keyring.chown(0).unwrap();
149+
match keyring.chown(1) {
150+
// If that worked, make sure we can move it back.
151+
Ok(_) => keyring.chown(0).unwrap(),
152+
// Otherwise, we got the right error.
153+
Err(err) => assert_eq!(err, errno::Errno(libc::EACCES)),
154+
}
151155
} else {
152156
let err = keyring.chown(1).unwrap_err();
153157
assert_eq!(err, errno::Errno(libc::EACCES));
@@ -161,9 +165,12 @@ fn chown_key() {
161165
let mut key = keyring.add_key::<User, _, _>("chown_key", payload).unwrap();
162166

163167
if *UID == 0 {
164-
key.chown(1).unwrap();
165-
key.chown(0).unwrap();
166-
} else {
168+
match key.chown(1) {
169+
// If that worked, make sure we can move it back.
170+
Ok(_) => key.chown(0).unwrap(),
171+
// Otherwise, we got the right error.
172+
Err(err) => assert_eq!(err, errno::Errno(libc::EACCES)),
173+
}
167174
let err = key.chown(1).unwrap_err();
168175
assert_eq!(err, errno::Errno(libc::EACCES));
169176
}

0 commit comments

Comments
 (0)