From fe9c47ab4f2ae24323c83e6b8508039d92f23fb4 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Wed, 27 Oct 2021 13:22:29 +0200 Subject: [PATCH] tests/prune: add tests for protecteded backups Signed-off-by: Dominik Csapak Signed-off-by: Wolfgang Bumiller --- tests/prune.rs | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tests/prune.rs b/tests/prune.rs index 448588b6..dc5a8284 100644 --- a/tests/prune.rs +++ b/tests/prune.rs @@ -45,6 +45,44 @@ fn create_info( BackupInfo { backup_dir, files, protected: false } } +fn create_info_protected( + snapshot: &str, + partial: bool, +) -> BackupInfo { + let mut info = create_info(snapshot, partial); + info.protected = true; + info +} + +#[test] +fn test_prune_protected() -> Result<(), Error> { + let mut orig_list = Vec::new(); + + orig_list.push(create_info_protected("host/elsa/2019-11-15T09:39:15Z", false)); + orig_list.push(create_info("host/elsa/2019-11-15T10:39:15Z", false)); + orig_list.push(create_info("host/elsa/2019-11-15T10:49:15Z", false)); + orig_list.push(create_info_protected("host/elsa/2019-11-15T10:59:15Z", false)); + + eprintln!("{:?}", orig_list); + + let mut options = PruneOptions::default(); + options.keep_last = Some(1); + let remove_list = get_prune_list(orig_list.clone(), false, &options); + let expect: Vec = vec![ + PathBuf::from("host/elsa/2019-11-15T10:39:15Z"), + ]; + assert_eq!(remove_list, expect); + + let mut options = PruneOptions::default(); + options.keep_hourly = Some(1); + let remove_list = get_prune_list(orig_list.clone(), false, &options); + let expect: Vec = vec![ + PathBuf::from("host/elsa/2019-11-15T10:39:15Z"), + ]; + assert_eq!(remove_list, expect); + Ok(()) +} + #[test] fn test_prune_hourly() -> Result<(), Error> {