]> git.proxmox.com Git - proxmox-backup.git/blame - tests/catar.rs
src/pxar/encoder.rs: allow to pass list of devices
[proxmox-backup.git] / tests / catar.rs
CommitLineData
3200579c
DM
1use failure::*;
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
2eeaacb9 29 Encoder::encode(path, &mut dir, &mut writer, None, false, CA_FORMAT_DEFAULT)?;
3200579c
DM
30
31 Command::new("cmp")
32 .arg("--verbose")
33 .arg("test-casync.catar")
34 .arg("test-proxmox.catar")
35 .status()
36 .expect("test failed - archives are different");
37
38 Ok(())
39}
40
41fn run_all_tests() -> Result<(), Error> {
42
43 run_test("tests/catar_data/test_file")?;
44
45 run_test("tests/catar_data/test_symlink")?;
46
47 run_test("tests/catar_data/test_subdir")?;
48
a147acfa 49 run_test("tests/catar_data/test_goodbye_sort_order")?;
0866748d 50
37ea44a5
DM
51 run_test("tests/catar_data/test_files_and_subdirs")?;
52
3200579c
DM
53 Ok(())
54}
55
a10bb8b9 56#[test] #[ignore]
a147acfa 57fn catar_simple() {
3200579c
DM
58
59 if let Err(err) = run_all_tests() {
60 eprintln!("Error: {}", err);
61 std::process::exit(1);
62 }
63}