diff options
| author | Hermes Agent <hermes@localhost> | 2026-08-12 02:42:03 +0000 |
|---|---|---|
| committer | Hermes Agent <hermes@localhost> | 2026-08-12 02:42:03 +0000 |
| commit | 2a3fb3adabb0aa17113032ad785458556fb6372e (patch) | |
| tree | d2b3d81f337ccd95984eec659aca00e8789f89de /tests | |
| parent | cad87b77c0003c851abb6264d3e373e9516edaae (diff) | |
Filter internal members from collected archive facts
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/compare.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/compare.rs b/tests/compare.rs index eb6d388..0bb2fff 100644 --- a/tests/compare.rs +++ b/tests/compare.rs @@ -265,3 +265,27 @@ fn excludes_legacy_internal_host_and_fakedata_archive_members() { let report = compare(&legacy_manifest, &native_manifest); assert!(report.is_equivalent(), "{}", report.render()); } + +#[test] +fn native_manifest_collection_excludes_internal_members_from_its_archive_facts() { + let fixture = tempdir().expect("temporary directory"); + let rootfs = fixture.path().join("rootfs"); + fs::create_dir_all(rootfs.join(".host/private")).expect("create host metadata"); + fs::create_dir_all(rootfs.join(".fakedata")).expect("create fakeroot metadata"); + fs::create_dir_all(rootfs.join("etc")).expect("create visible directory"); + fs::write(rootfs.join(".host/private/secret"), "metadata").expect("write host metadata"); + fs::write(rootfs.join(".fakedata/owner"), "metadata").expect("write fakeroot metadata"); + fs::write(rootfs.join("etc/controller.conf"), "controller\n").expect("write visible file"); + let artifact = fixture.path().join("legacy.tar"); + let mut writer = tar::Builder::new(fs::File::create(&artifact).expect("create legacy archive")); + writer.append_dir_all(".", &rootfs).expect("write legacy archive"); + writer.finish().expect("finish legacy archive"); + + let manifest = ArtifactManifest::collect(&rootfs, vec![], None, &artifact) + .expect("collect native filesystem and archive facts"); + + assert!(manifest + .archive_members + .iter() + .all(|record| !record.path.starts_with(".host/") && !record.path.starts_with(".fakedata/"))); +} |