@@ -146,8 +146,12 @@ fn chown_keyring() {
146
146
let mut keyring = utils:: new_test_keyring ( ) ;
147
147
148
148
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
+ }
151
155
} else {
152
156
let err = keyring. chown ( 1 ) . unwrap_err ( ) ;
153
157
assert_eq ! ( err, errno:: Errno ( libc:: EACCES ) ) ;
@@ -161,9 +165,12 @@ fn chown_key() {
161
165
let mut key = keyring. add_key :: < User , _ , _ > ( "chown_key" , payload) . unwrap ( ) ;
162
166
163
167
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
+ }
167
174
let err = key. chown ( 1 ) . unwrap_err ( ) ;
168
175
assert_eq ! ( err, errno:: Errno ( libc:: EACCES ) ) ;
169
176
}
0 commit comments