Create test for load/store fifo node

This commit is contained in:
Nathan Fisher 2023-12-16 00:40:19 -05:00
parent d26a5c5805
commit b534cf6d49
1 changed files with 32 additions and 7 deletions

View File

@ -407,8 +407,8 @@ mod tests {
#[test]
fn load_store_file() {
{
let fd = std::fs::File::create("test/li.node").unwrap();
let mut writer = std::io::BufWriter::new(fd);
let fd = fs::File::create("test/li.node").unwrap();
let mut writer = BufWriter::new(fd);
let links = Mutex::new(HashMap::new());
let node = Node::from_path("test/li.txt", Algorithm::Sha1, &links).unwrap();
let FileType::Normal(_) = node.filetype else {
@ -418,7 +418,7 @@ mod tests {
node.write(&mut writer).unwrap();
}
let meta = fs::metadata("test/li.txt").unwrap();
let fd = std::fs::File::open("test/li.node").unwrap();
let fd = fs::File::open("test/li.node").unwrap();
let mut reader = BufReader::new(fd);
let node = Node::read(&mut reader).unwrap();
assert_eq!(meta.mode() & 0o777, node.mode as u32);
@ -446,8 +446,8 @@ mod tests {
let _res = remove_file("test/lilnk.txt");
symlink("li.txt", "test/lilnk.txt").unwrap();
let _res = remove_file("test/lilnk.node");
let fd = std::fs::File::create("test/lilnk.node").unwrap();
let mut writer = std::io::BufWriter::new(fd);
let fd = fs::File::create("test/lilnk.node").unwrap();
let mut writer = BufWriter::new(fd);
let links = Mutex::new(HashMap::new());
let node = Node::from_path("test/lilnk.txt", Algorithm::Sha1, &links).unwrap();
let FileType::SoftLink(ref tgt) = node.filetype else {
@ -473,8 +473,8 @@ mod tests {
let _res = remove_file("test/lihlnk.txt");
fs::hard_link("test/li.txt", "test/lihlnk.txt").unwrap();
let _res = remove_file("test/lihlnk.node");
let fd = std::fs::File::create("test/lihlnk.node").unwrap();
let mut writer = std::io::BufWriter::new(fd);
let fd = fs::File::create("test/lihlnk.node").unwrap();
let mut writer = BufWriter::new(fd);
let links = Mutex::new(HashMap::new());
let _node = Node::from_path("test/li.txt", Algorithm::Sha1, &links).unwrap();
let node = Node::from_path("test/lihlnk.txt", Algorithm::Sha1, &links).unwrap();
@ -495,6 +495,31 @@ mod tests {
assert_eq!(tgt, "test/li.txt");
}
#[test]
fn load_store_fifo() {
{
let _res = remove_file("test/fifo");
nix::mkfifo("test/fifo", 0o644).unwrap();
let links = Mutex::new(HashMap::new());
let node = Node::from_path("test/fifo", Algorithm::Skip, &links).unwrap();
let FileType::Fifo = node.filetype else {
eprintln!("Incorrect filetype: {:?}", node.filetype);
panic!();
};
let _res = remove_file("test/fifo.node");
let fd = fs::File::create("test/fifo.node").unwrap();
let mut writer = BufWriter::new(fd);
node.write(&mut writer).unwrap();
}
let fd = fs::File::open("test/fifo.node").unwrap();
let mut reader = BufReader::new(fd);
let node = Node::read(&mut reader).unwrap();
let FileType::Fifo = node.filetype else {
eprintln!("Read incorrect filetype: {:?}", node.filetype);
panic!();
};
}
#[test]
fn extract_file() {
let links = Mutex::new(HashMap::new());