26 lines
873 B
Rust
26 lines
873 B
Rust
use std::os::unix::net::UnixListener;
|
|
|
|
use rpki::fetch::rsync::{LocalDirRsyncFetcher, RsyncFetcher};
|
|
|
|
#[test]
|
|
fn local_dir_rsync_fetcher_normalizes_base_and_skips_non_files() {
|
|
let td = tempfile::tempdir().expect("tempdir");
|
|
let dir = td.path();
|
|
|
|
std::fs::write(dir.join("a.txt"), b"a").expect("write file");
|
|
|
|
// Create a Unix domain socket entry; metadata().is_file() should be false.
|
|
let _sock = UnixListener::bind(dir.join("sock")).expect("bind unix socket");
|
|
|
|
let fetcher = LocalDirRsyncFetcher::new(dir);
|
|
|
|
let out = fetcher
|
|
.fetch_objects("rsync://example.test/repo") // intentionally no trailing slash
|
|
.expect("fetch objects");
|
|
|
|
let uris: Vec<_> = out.iter().map(|(u, _)| u.as_str()).collect();
|
|
assert!(uris.contains(&"rsync://example.test/repo/a.txt"));
|
|
assert!(!uris.iter().any(|u| u.ends_with("/sock")));
|
|
}
|
|
|