Files
guara/crates/guara-core/tests/lvm.rs
T
Lucas RayanandClaude Opus 5.5 beb83fef92
Release / Cria a release (push) Canceled after 0s
Release / CLI (linux-aarch64) (push) Canceled after 0s
Release / CLI (linux-x86_64) (push) Canceled after 0s
Release / CLI (macos-aarch64) (push) Canceled after 0s
Release / CLI (macos-x86_64) (push) Canceled after 0s
Release / CLI (windows-x86_64) (push) Canceled after 0s
Release / App desktop (linux-x86_64) (push) Canceled after 0s
Release / App desktop (macos-aarch64) (push) Canceled after 0s
Release / App desktop (macos-x86_64) (push) Canceled after 0s
Release / App desktop (windows-x86_64) (push) Canceled after 0s
Release / Publica a release (push) Canceled after 0s
Formatação (cargo fmt) e ajustes do clippy para o CI da 1.0.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:41:58 -03:00

33 lines
1.2 KiB
Rust

//! LVM2: imagem real do conjunto de testes do dfvfs (target/testdata/dfvfs/lvm.raw).
use guara_core::lvm;
use guara_core::partition::detect_fs;
use guara_core::source::{FileSource, Source};
use std::sync::Arc;
#[test]
fn assembles_real_lvm_image() {
let p = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"))
.join("../../target/testdata/dfvfs/lvm.raw");
if !p.exists() {
eprintln!("SKIP: execute scripts/fetch-testdata.sh");
return;
}
let src: Arc<dyn Source> = Arc::new(FileSource::open(&p).unwrap());
let pv = lvm::read_pv(src.as_ref()).expect("PV");
assert_eq!(pv.vg_name, "test_volume_group");
let vgs = lvm::assemble_vgs(vec![(src, pv)]);
assert_eq!(vgs.len(), 1);
let vg = &vgs[0];
assert!(vg.warnings.is_empty(), "{:?}", vg.warnings);
let names: Vec<&str> = vg.lvs.iter().map(|(n, _)| n.as_str()).collect();
assert_eq!(names, ["test_logical_volume1", "test_logical_volume2"]);
for (n, lv) in &vg.lvs {
assert_eq!(lv.size(), 4 << 20, "{n}");
let fs = detect_fs(lv.as_ref(), 0);
eprintln!("{n}: {fs:?}");
// O segundo volume da imagem de referência foi criado e nunca formatado.
assert_eq!(fs.is_some(), n == "test_logical_volume1", "{n}");
}
}