summaryrefslogtreecommitdiff
path: root/tests/compare.rs
diff options
context:
space:
mode:
authorHermes Agent <hermes@localhost>2026-08-12 03:17:30 +0000
committerHermes Agent <hermes@localhost>2026-08-12 03:17:30 +0000
commit47f461b35fe77c9454488b64fddc2576ff2561be (patch)
treeafd43266757c4902edc62357d5c0d81f1830825c /tests/compare.rs
parentca6572f7c96fd14733b42ad6dcd361bc136093ed (diff)
Exclude nested internal metadata from manifests
Diffstat (limited to 'tests/compare.rs')
-rw-r--r--tests/compare.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/compare.rs b/tests/compare.rs
index 2dfd46d..7dd44e2 100644
--- a/tests/compare.rs
+++ b/tests/compare.rs
@@ -328,6 +328,31 @@ fn native_manifest_collection_excludes_internal_members_from_its_archive_facts()
}
#[test]
+fn archive_collection_excludes_nested_internal_metadata_members() {
+ let fixture = tempdir().expect("temporary directory");
+ let rootfs = fixture.path().join("rootfs");
+ fs::create_dir_all(rootfs.join("var/.fakedata")).expect("create fakeroot metadata");
+ fs::create_dir_all(rootfs.join("etc")).expect("create visible directory");
+ fs::write(rootfs.join("var/.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_archive(&artifact).expect("collect archive facts");
+
+ assert!(manifest
+ .archive_members
+ .iter()
+ .all(|record| !record.path.split('/').any(|component| component == ".fakedata")));
+ assert!(manifest
+ .files
+ .iter()
+ .all(|record| !record.path.split('/').any(|component| component == ".fakedata")));
+}
+
+#[test]
fn rootfs_collection_recognizes_services_enabled_by_non_default_targets() {
let fixture = tempdir().expect("temporary directory");
let rootfs = fixture.path().join("rootfs");