]> git.proxmox.com Git - proxmox-backup.git/blame - tests/catar.rs
move client to pbs-client subcrate
[proxmox-backup.git] / tests / catar.rs
CommitLineData
2b7f8dd5
WB
1use std::process::Command;
2
f7d4e4b5 3use anyhow::{Error};
3200579c 4
2b7f8dd5 5use pbs_client::pxar::*;
3200579c
DM
6
7fn run_test(dir_name: &str) -> Result<(), Error> {
8
23c8415d 9 println!("run pxar test {}", dir_name);
3200579c
DM
10
11 Command::new("casync")
12 .arg("make")
13 .arg("test-casync.catar")
14 .arg(dir_name)
15 .status()
16 .expect("failed to execute casync");
17
c443f58b 18 let writer = std::fs::OpenOptions::new()
3200579c
DM
19 .create(true)
20 .write(true)
21 .truncate(true)
22 .open("test-proxmox.catar")?;
c443f58b 23 let writer = pxar::encoder::sync::StandardWriter::new(writer);
3200579c 24
c443f58b 25 let dir = nix::dir::Dir::open(
3200579c
DM
26 dir_name, nix::fcntl::OFlag::O_NOFOLLOW,
27 nix::sys::stat::Mode::empty())?;
28
77486a60
FG
29 let options = PxarCreateOptions {
30 entries_max: ENCODER_MAX_ENTRIES,
31 ..PxarCreateOptions::default()
32 };
33
6afb60ab
SR
34 let rt = tokio::runtime::Runtime::new().unwrap();
35 rt.block_on(create_archive(
c443f58b
WB
36 dir,
37 writer,
5444fa94 38 Flags::DEFAULT,
c443f58b 39 |_| Ok(()),
c443f58b 40 None,
77486a60 41 options,
6afb60ab 42 ))?;
3200579c
DM
43
44 Command::new("cmp")
45 .arg("--verbose")
46 .arg("test-casync.catar")
47 .arg("test-proxmox.catar")
48 .status()
49 .expect("test failed - archives are different");
50
51 Ok(())
52}
53
54fn run_all_tests() -> Result<(), Error> {
55
56 run_test("tests/catar_data/test_file")?;
57
58 run_test("tests/catar_data/test_symlink")?;
59
60 run_test("tests/catar_data/test_subdir")?;
61
a147acfa 62 run_test("tests/catar_data/test_goodbye_sort_order")?;
0866748d 63
37ea44a5
DM
64 run_test("tests/catar_data/test_files_and_subdirs")?;
65
3200579c
DM
66 Ok(())
67}
68
a10bb8b9 69#[test] #[ignore]
a147acfa 70fn catar_simple() {
3200579c
DM
71
72 if let Err(err) = run_all_tests() {
73 eprintln!("Error: {}", err);
74 std::process::exit(1);
75 }
76}