Removes file permission twiddling in snapshot test (#32277)
This commit is contained in:
parent
5ca1b40f11
commit
814ea7ae9f
|
@ -3445,7 +3445,6 @@ mod tests {
|
||||||
std::{
|
std::{
|
||||||
convert::TryFrom,
|
convert::TryFrom,
|
||||||
mem::size_of,
|
mem::size_of,
|
||||||
os::unix::fs::PermissionsExt,
|
|
||||||
sync::{atomic::Ordering, Arc},
|
sync::{atomic::Ordering, Arc},
|
||||||
},
|
},
|
||||||
tempfile::NamedTempFile,
|
tempfile::NamedTempFile,
|
||||||
|
@ -5312,40 +5311,22 @@ mod tests {
|
||||||
})
|
})
|
||||||
.unzip();
|
.unzip();
|
||||||
|
|
||||||
// Set the parent directory of the first account path to be readonly, so that
|
// create the `run/` and `snapshot/` dirs, and ensure they're there
|
||||||
// create_dir_all in create_all_accounts_run_and_snapshot_dirs fails.
|
let (account_run_paths, account_snapshot_paths) =
|
||||||
let account_path_first = &account_paths[0];
|
create_all_accounts_run_and_snapshot_dirs(&account_paths).unwrap();
|
||||||
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();
|
|
||||||
account_run_paths.iter().all(|path| path.is_dir());
|
account_run_paths.iter().all(|path| path.is_dir());
|
||||||
account_snapshot_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);
|
delete_contents_of_path(account_path_first);
|
||||||
assert!(account_path_first.exists());
|
assert!(account_path_first.exists());
|
||||||
let mut permissions = fs::metadata(account_path_first).unwrap().permissions();
|
assert!(!account_path_first.join("run").exists());
|
||||||
permissions.set_readonly(true);
|
assert!(!account_path_first.join("snapshot").exists());
|
||||||
fs::set_permissions(account_path_first, permissions.clone()).unwrap();
|
|
||||||
parent_permissions.set_readonly(true);
|
_ = create_all_accounts_run_and_snapshot_dirs(&account_paths).unwrap();
|
||||||
fs::set_permissions(parent, parent_permissions.clone()).unwrap();
|
account_run_paths.iter().all(|path| path.is_dir());
|
||||||
// assert that create_all_accounts_run_and_snapshot_dirs returns error when the first account path
|
account_snapshot_paths.iter().all(|path| path.is_dir());
|
||||||
// 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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
Loading…
Reference in New Issue