Removes file permission twiddling in snapshot test (#32277)

This commit is contained in:
Brooks 2023-06-26 12:17:14 -04:00 committed by GitHub
parent 5ca1b40f11
commit 814ea7ae9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 30 deletions

View File

@ -3445,7 +3445,6 @@ mod tests {
std::{
convert::TryFrom,
mem::size_of,
os::unix::fs::PermissionsExt,
sync::{atomic::Ordering, Arc},
},
tempfile::NamedTempFile,
@ -5312,40 +5311,22 @@ mod tests {
})
.unzip();
// Set the parent directory of the first account path to be readonly, so that
// create_dir_all in create_all_accounts_run_and_snapshot_dirs fails.
let account_path_first = &account_paths[0];
let parent = account_path_first.parent().unwrap();
let mut parent_permissions = fs::metadata(parent).unwrap().permissions();
parent_permissions.set_readonly(true);
fs::set_permissions(parent, parent_permissions.clone()).unwrap();
// assert that create_all_accounts_run_and_snapshot_dirs returns error when the first account path
// is readonly.
assert!(create_all_accounts_run_and_snapshot_dirs(&account_paths).is_err());
// Set the parent directory of the first account path to be writable, so that
// create_all_accounts_run_and_snapshot_dirs returns Ok.
parent_permissions.set_mode(0o744);
fs::set_permissions(parent, parent_permissions.clone()).unwrap();
let result = create_all_accounts_run_and_snapshot_dirs(&account_paths);
assert!(result.is_ok());
let (account_run_paths, account_snapshot_paths) = result.unwrap();
// create the `run/` and `snapshot/` dirs, and ensure they're there
let (account_run_paths, account_snapshot_paths) =
create_all_accounts_run_and_snapshot_dirs(&account_paths).unwrap();
account_run_paths.iter().all(|path| path.is_dir());
account_snapshot_paths.iter().all(|path| path.is_dir());
// delete a `run/` and `snapshot/` dir, then re-create it
let account_path_first = account_paths.first().unwrap();
delete_contents_of_path(account_path_first);
assert!(account_path_first.exists());
let mut permissions = fs::metadata(account_path_first).unwrap().permissions();
permissions.set_readonly(true);
fs::set_permissions(account_path_first, permissions.clone()).unwrap();
parent_permissions.set_readonly(true);
fs::set_permissions(parent, parent_permissions.clone()).unwrap();
// assert that create_all_accounts_run_and_snapshot_dirs returns error when the first account path
// and its parent are readonly. This exercises the case where the first account path is readonly,
// causing create_accounts_run_and_snapshot_dirs to fail.
assert!(create_all_accounts_run_and_snapshot_dirs(&account_paths).is_err());
assert!(!account_path_first.join("run").exists());
assert!(!account_path_first.join("snapshot").exists());
_ = create_all_accounts_run_and_snapshot_dirs(&account_paths).unwrap();
account_run_paths.iter().all(|path| path.is_dir());
account_snapshot_paths.iter().all(|path| path.is_dir());
}
#[test]