]> git.proxmox.com Git - proxmox-backup.git/blame - tests/catar.rs
api: define subscription key schema and use it
[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
c443f58b 17 let writer = std::fs::OpenOptions::new()
3200579c
DM
18 .create(true)
19 .write(true)
20 .truncate(true)
21 .open("test-proxmox.catar")?;
c443f58b 22 let writer = pxar::encoder::sync::StandardWriter::new(writer);
3200579c 23
c443f58b 24 let dir = nix::dir::Dir::open(
3200579c
DM
25 dir_name, nix::fcntl::OFlag::O_NOFOLLOW,
26 nix::sys::stat::Mode::empty())?;
27
c443f58b
WB
28 create_archive(
29 dir,
30 writer,
31 Vec::new(),
5444fa94 32 Flags::DEFAULT,
62d123e5
CE
33 None,
34 false,
c443f58b 35 |_| Ok(()),
6fc053ed 36 ENCODER_MAX_ENTRIES,
c443f58b 37 None,
62d123e5 38 )?;
3200579c
DM
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
50fn 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
a147acfa 58 run_test("tests/catar_data/test_goodbye_sort_order")?;
0866748d 59
37ea44a5
DM
60 run_test("tests/catar_data/test_files_and_subdirs")?;
61
3200579c
DM
62 Ok(())
63}
64
a10bb8b9 65#[test] #[ignore]
a147acfa 66fn catar_simple() {
3200579c
DM
67
68 if let Err(err) = run_all_tests() {
69 eprintln!("Error: {}", err);
70 std::process::exit(1);
71 }
72}