39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use std::fs;
|
|
|
|
use rpki::fetch::rsync::RsyncFetcher;
|
|
use rpki::fetch::rsync_system::{SystemRsyncConfig, SystemRsyncFetcher};
|
|
|
|
#[test]
|
|
fn system_rsync_fetcher_can_sync_from_local_directory_for_tests() {
|
|
let tmp = tempfile::tempdir().expect("tempdir");
|
|
let src = tmp.path().join("src");
|
|
let nested = src.join("sub");
|
|
fs::create_dir_all(&nested).expect("mkdir");
|
|
fs::write(src.join("a.txt"), b"aaa").expect("write a");
|
|
fs::write(nested.join("b.txt"), b"bbb").expect("write b");
|
|
|
|
let config = SystemRsyncConfig {
|
|
rsync_bin: "rsync".into(),
|
|
..Default::default()
|
|
};
|
|
let fetcher = SystemRsyncFetcher::new(config);
|
|
|
|
let base = src.to_string_lossy().to_string();
|
|
let out = fetcher.fetch_objects(&base).expect("fetch objects");
|
|
|
|
let mut saw_a = false;
|
|
let mut saw_b = false;
|
|
for (uri, bytes) in out {
|
|
if uri.ends_with("a.txt") {
|
|
assert_eq!(bytes, b"aaa");
|
|
saw_a = true;
|
|
}
|
|
if uri.ends_with("sub/b.txt") {
|
|
assert_eq!(bytes, b"bbb");
|
|
saw_b = true;
|
|
}
|
|
}
|
|
assert!(saw_a, "expected a.txt");
|
|
assert!(saw_b, "expected sub/b.txt");
|
|
}
|