fix(fs): tests

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou
2026-04-03 18:03:03 +08:00
parent 67bc27263f
commit b50bcfb158

View File

@@ -1543,7 +1543,7 @@ mod tests {
) )
} }
fn new_block(id: i32, payload: &[u8]) -> FileTransferBlock { fn make_test_block(id: i32, payload: &[u8]) -> FileTransferBlock {
let mut block = FileTransferBlock::new(); let mut block = FileTransferBlock::new();
block.id = id; block.id = id;
block.file_num = 0; block.file_num = 0;
@@ -1567,7 +1567,7 @@ mod tests {
std::fs::create_dir_all(&downloads).expect("create downloads dir"); std::fs::create_dir_all(&downloads).expect("create downloads dir");
let mut job = new_write_job(1, downloads, "../traversal_proof.txt"); let mut job = new_write_job(1, downloads, "../traversal_proof.txt");
let block = new_block(1, b"malicious payload"); let block = make_test_block(1, b"malicious payload");
let err = job let err = job
.write(block) .write(block)
.await .await
@@ -1586,7 +1586,7 @@ mod tests {
std::fs::create_dir_all(&downloads).expect("create downloads dir"); std::fs::create_dir_all(&downloads).expect("create downloads dir");
let mut job = new_write_job(2, downloads, &absolute_target.to_string_lossy()); let mut job = new_write_job(2, downloads, &absolute_target.to_string_lossy());
let block = new_block(2, b"ssh key payload"); let block = make_test_block(2, b"ssh key payload");
let err = job let err = job
.write(block) .write(block)
.await .await
@@ -1610,7 +1610,8 @@ mod tests {
#[cfg(unix)] #[cfg(unix)]
{ {
use std::os::unix::fs::symlink; use std::os::unix::fs::symlink;
if symlink(&outside, &symlink_path).is_err() { if let Err(err) = symlink(&outside, &symlink_path) {
eprintln!("Skipping symlink test: failed to create symlink: {err}");
let _ = std::fs::remove_dir_all(&tmp_root); let _ = std::fs::remove_dir_all(&tmp_root);
return; return;
} }
@@ -1618,14 +1619,17 @@ mod tests {
#[cfg(windows)] #[cfg(windows)]
{ {
use std::os::windows::fs::symlink_dir; use std::os::windows::fs::symlink_dir;
if symlink_dir(&outside, &symlink_path).is_err() { if let Err(err) = symlink_dir(&outside, &symlink_path) {
eprintln!(
"Skipping symlink test: failed to create directory symlink (requires privileges): {err}"
);
let _ = std::fs::remove_dir_all(&tmp_root); let _ = std::fs::remove_dir_all(&tmp_root);
return; return;
} }
} }
let mut job = new_write_job(3, downloads, "link/escape.txt"); let mut job = new_write_job(3, downloads, "link/escape.txt");
let block = new_block(3, b"symlink escape payload"); let block = make_test_block(3, b"symlink escape payload");
let err = job let err = job
.write(block) .write(block)
.await .await