in xar/clean_xar_mounts/src/main.rs [241:300]
fn get_lockfile_test() {
// Helper to make a MountedFilesystem object.
fn make_mf(mountpoint: &str) -> MountedFilesystem {
MountedFilesystem {
mountpoint: String::from(mountpoint),
chroot: PathBuf::from("/"),
fstype: String::from("fuse.squashfuse_ll"),
}
}
let logger = setup_logger(slog::Level::Debug);
// Confirm parsing a non-seed'd directory works
let mf = make_mf("/mnt/xarfuse/uid-0/8f583eae-ns-4026531840");
assert_eq!(
get_lockfile_path(&logger, &mf),
vec![
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae-ns-4026531840"),
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae"),
]
);
// Confirm parsing a non-seed'd /dev/shm directory works
let mf = make_mf("/dev/shm/uid-0/8f583eae-ns-4026531840");
assert_eq!(
get_lockfile_path(&logger, &mf),
vec![
PathBuf::from("/dev/shm/uid-0/lockfile.8f583eae-ns-4026531840"),
PathBuf::from("/dev/shm/uid-0/lockfile.8f583eae"),
],
);
// Confirm parsing a seed'd directory works
let mf = make_mf("/mnt/xarfuse/uid-0/8f583eae-seed-test-ns-4026531840");
assert_eq!(
get_lockfile_path(&logger, &mf),
vec![
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae-seed-test-ns-4026531840"),
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae"),
],
);
// Confirm parsing a seed'd directory with dashes works
let mf = make_mf("/mnt/xarfuse/uid-0/8f583eae-seed-test-foo-bar-ns-4026531840");
assert_eq!(
get_lockfile_path(&logger, &mf),
vec![
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae-seed-test-foo-bar-ns-4026531840"),
PathBuf::from("/mnt/xarfuse/uid-0/lockfile.8f583eae"),
],
);
// Confirm parsing a non-xar directory returns empty vec
let mf = make_mf("/var/releases/continuous_www_scripts9999");
assert!(get_lockfile_path(&logger, &mf).is_empty());
// Confirm a random path doesn't parse
let mf = make_mf("/dev/null");
assert!(get_lockfile_path(&logger, &mf).is_empty());
}