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(()) +}