all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH v5 proxmox-backup 5/5] api types: add unit tests for backup archive name parsing
Date: Fri, 22 Nov 2024 11:30:11 +0100	[thread overview]
Message-ID: <20241122103011.165010-6-c.ebner@proxmox.com> (raw)
In-Reply-To: <20241122103011.165010-1-c.ebner@proxmox.com>

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
changes since version 4:
- no changes

 pbs-api-types/src/datastore.rs | 64 ++++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/pbs-api-types/src/datastore.rs b/pbs-api-types/src/datastore.rs
index 105984554..df5c22482 100644
--- a/pbs-api-types/src/datastore.rs
+++ b/pbs-api-types/src/datastore.rs
@@ -1816,3 +1816,67 @@ impl BackupArchiveName {
 impl ApiType for BackupArchiveName {
     const API_SCHEMA: Schema = BACKUP_ARCHIVE_NAME_SCHEMA;
 }
+
+#[cfg(test)]
+mod tests {
+    use super::*;
+
+    #[test]
+    fn test_invalid_backup_archive_names() {
+        let invalid_archive_names = ["/invalid/", "/invalid/..", "/invalid/archive-name.invalid"];
+
+        for archive_name in invalid_archive_names {
+            assert!(BackupArchiveName::from_path(archive_name).is_err());
+        }
+    }
+
+    #[test]
+    fn test_valid_didx_backup_archive_names() {
+        let valid_archive_names = [
+            "/valid/archive-name.pxar",
+            "/valid/archive-name.pxar.didx",
+            "/valid/archive-name.mpxar",
+            "/valid/archive-name.mpxar.didx",
+            "/valid/archive-name.ppxar",
+            "/valid/archive-name.ppxar.didx",
+            "/valid/archive-name.pcat1",
+            "/valid/archive-name.pcat1.didx",
+        ];
+
+        for archive_name in valid_archive_names {
+            let archive = BackupArchiveName::from_path(archive_name).unwrap();
+            assert!(archive.as_ref().ends_with(".didx"));
+            assert!(archive.archive_type() == ArchiveType::DynamicIndex);
+        }
+    }
+
+    #[test]
+    fn test_valid_fidx_backup_archive_names() {
+        let valid_archive_names = ["/valid/archive-name.img", "/valid/archive-name.img.fidx"];
+
+        for archive_name in valid_archive_names {
+            let archive = BackupArchiveName::from_path(archive_name).unwrap();
+            assert!(archive.as_ref() == "archive-name.img.fidx");
+            assert!(archive.without_type_extension() == "archive-name.img");
+            assert!(archive.archive_type() == ArchiveType::FixedIndex);
+        }
+    }
+
+    #[test]
+    fn test_valid_blob_backup_archive_names() {
+        let valid_archive_names = [
+            "/valid/index.json",
+            "/valid/index.json.blob",
+            "/valid/rsa-encrypted.key",
+            "/valid/rsa-encrypted.key.blob",
+            "/valid/archive-name.log",
+            "/valid/archive-name.log.blob",
+        ];
+
+        for archive_name in valid_archive_names {
+            let archive = BackupArchiveName::from_path(archive_name).unwrap();
+            assert!(archive.as_ref().ends_with(".blob"));
+            assert!(archive.archive_type() == ArchiveType::Blob);
+        }
+    }
+}
-- 
2.39.5



_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel


  parent reply	other threads:[~2024-11-22 10:30 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-22 10:30 [pbs-devel] [PATCH v5 proxmox-backup 0/5] introduce dedcated archive name api type Christian Ebner
2024-11-22 10:30 ` [pbs-devel] [PATCH v5 proxmox-backup 1/5] datastore: move `ArchiveType` to api types Christian Ebner
2024-11-22 10:30 ` [pbs-devel] [PATCH v5 proxmox-backup 2/5] api types: introduce `BackupArchiveName` type Christian Ebner
2024-11-22 10:30 ` [pbs-devel] [PATCH v5 proxmox-backup 3/5] client/server: use dedicated api type for all archive names Christian Ebner
2024-11-22 10:30 ` [pbs-devel] [PATCH v5 proxmox-backup 4/5] client: drop unused parse_archive_type helper Christian Ebner
2024-11-22 10:30 ` Christian Ebner [this message]
2024-11-22 12:49 ` [pbs-devel] applied-series: [PATCH v5 proxmox-backup 0/5] introduce dedcated archive name api type Fabian Grünbichler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241122103011.165010-6-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal