]> git.proxmox.com Git - proxmox-backup.git/blob - tests/catar.rs
ui: webauthn config: use ID instead of Id/id
[proxmox-backup.git] / tests / catar.rs
1 use anyhow::{Error};
2
3 use std::process::Command;
4 use proxmox_backup::pxar::*;
5
6 fn run_test(dir_name: &str) -> Result<(), Error> {
7
8 println!("run pxar test {}", dir_name);
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
17 let writer = std::fs::OpenOptions::new()
18 .create(true)
19 .write(true)
20 .truncate(true)
21 .open("test-proxmox.catar")?;
22 let writer = pxar::encoder::sync::StandardWriter::new(writer);
23
24 let dir = nix::dir::Dir::open(
25 dir_name, nix::fcntl::OFlag::O_NOFOLLOW,
26 nix::sys::stat::Mode::empty())?;
27
28 create_archive(
29 dir,
30 writer,
31 Vec::new(),
32 Flags::DEFAULT,
33 None,
34 false,
35 |_| Ok(()),
36 ENCODER_MAX_ENTRIES,
37 None,
38 )?;
39
40 Command::new("cmp")
41 .arg("--verbose")
42 .arg("test-casync.catar")
43 .arg("test-proxmox.catar")
44 .status()
45 .expect("test failed - archives are different");
46
47 Ok(())
48 }
49
50 fn run_all_tests() -> Result<(), Error> {
51
52 run_test("tests/catar_data/test_file")?;
53
54 run_test("tests/catar_data/test_symlink")?;
55
56 run_test("tests/catar_data/test_subdir")?;
57
58 run_test("tests/catar_data/test_goodbye_sort_order")?;
59
60 run_test("tests/catar_data/test_files_and_subdirs")?;
61
62 Ok(())
63 }
64
65 #[test] #[ignore]
66 fn catar_simple() {
67
68 if let Err(err) = run_all_tests() {
69 eprintln!("Error: {}", err);
70 std::process::exit(1);
71 }
72 }