From c162df60c8575e6175a2f6c30dd1f17765217e8d Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Thu, 30 Jul 2020 10:02:15 +0200 Subject: [PATCH] zfs status: add test with spares this will fail for now, fixed in the next commit Signed-off-by: Dominik Csapak --- src/tools/disks/zpool_status.rs | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/tools/disks/zpool_status.rs b/src/tools/disks/zpool_status.rs index 3b0edc88..8971d905 100644 --- a/src/tools/disks/zpool_status.rs +++ b/src/tools/disks/zpool_status.rs @@ -465,3 +465,40 @@ errors: No known data errors Ok(()) } + +#[test] +fn test_zpool_status_parser_spares() -> Result<(), Error> { + + let output = r###" pool: tank + state: ONLINE + scan: none requested +config: + + NAME STATE READ WRITE CKSUM + tank ONLINE 0 0 0 + mirror-0 ONLINE 0 0 0 + /dev/sda1 ONLINE 0 0 0 + /dev/sda2 ONLINE 0 0 0 + mirror-1 ONLINE 0 0 0 + /dev/sda3 ONLINE 0 0 0 + /dev/sda4 ONLINE 0 0 0 + logs + /dev/sda5 ONLINE 0 0 0 + spares + /dev/sdb AVAIL + /dev/sdc AVAIL + +errors: No known data errors +"###; + + let key_value_list = parse_zpool_status(&output)?; + for (k, v) in key_value_list { + println!("{} => {}", k,v); + if k == "config" { + let vdev_list = parse_zpool_status_config_tree(&v)?; + let _tree = vdev_list_to_tree(&vdev_list); + } + } + + Ok(()) +}