]> git.proxmox.com Git - proxmox-backup.git/blame - tests/catar.rs
switch from failure to anyhow
[proxmox-backup.git] / tests / catar.rs
CommitLineData
f7d4e4b5 1use anyhow::{Error};
3200579c
DM
2
3use std::process::Command;
23c8415d 4use proxmox_backup::pxar::*;
3200579c
DM
5
6fn run_test(dir_name: &str) -> Result<(), Error> {
7
23c8415d 8 println!("run pxar test {}", dir_name);
3200579c
DM
9
10 Command::new("casync")
11 .arg("make")
12 .arg("test-casync.catar")
13 .arg(dir_name)
14 .status()
15 .expect("failed to execute casync");
16
5e7a09be 17 let mut writer = std::fs::OpenOptions::new()
3200579c
DM
18 .create(true)
19 .write(true)
20 .truncate(true)
21 .open("test-proxmox.catar")?;
22
23 let mut dir = nix::dir::Dir::open(
24 dir_name, nix::fcntl::OFlag::O_NOFOLLOW,
25 nix::sys::stat::Mode::empty())?;
26
27 let path = std::path::PathBuf::from(dir_name);
28
9d135fe6 29 let catalog = None::<&mut catalog::DummyCatalogWriter>;
62d123e5
CE
30 Encoder::encode(
31 path,
32 &mut dir,
33 &mut writer,
34 catalog,
35 None,
36 false,
37 false,
38 flags::DEFAULT,
39 Vec::new(),
6fc053ed 40 ENCODER_MAX_ENTRIES,
62d123e5 41 )?;
3200579c
DM
42
43 Command::new("cmp")
44 .arg("--verbose")
45 .arg("test-casync.catar")
46 .arg("test-proxmox.catar")
47 .status()
48 .expect("test failed - archives are different");
49
50 Ok(())
51}
52
53fn run_all_tests() -> Result<(), Error> {
54
55 run_test("tests/catar_data/test_file")?;
56
57 run_test("tests/catar_data/test_symlink")?;
58
59 run_test("tests/catar_data/test_subdir")?;
60
a147acfa 61 run_test("tests/catar_data/test_goodbye_sort_order")?;
0866748d 62
37ea44a5
DM
63 run_test("tests/catar_data/test_files_and_subdirs")?;
64
3200579c
DM
65 Ok(())
66}
67
a10bb8b9 68#[test] #[ignore]
a147acfa 69fn catar_simple() {
3200579c
DM
70
71 if let Err(err) = run_all_tests() {
72 eprintln!("Error: {}", err);
73 std::process::exit(1);
74 }
75}