summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorHermes Agent <hermes@localhost>2026-08-12 05:21:12 +0000
committerHermes Agent <hermes@localhost>2026-08-12 05:21:12 +0000
commit36d844cb23d5bfbc01874c71ec625892f2e6de67 (patch)
tree56d905b2572f18f6d895808dd4ae4dde9808e409 /tests
parent3a47e14cbe6e15de0758c8bd4233a8d84ff80aa8 (diff)
Validate semantic manifest paths
Diffstat (limited to 'tests')
-rw-r--r--tests/compare.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/compare.rs b/tests/compare.rs
index 45522d1..17342c3 100644
--- a/tests/compare.rs
+++ b/tests/compare.rs
@@ -206,6 +206,29 @@ fn rejects_malformed_file_records_before_comparison() {
}
#[test]
+fn rejects_non_portable_manifest_paths_before_comparison() {
+ let error = ArtifactManifest::new(
+ vec![],
+ vec![FileRecord::file("../etc/controller.conf", "digest")],
+ None,
+ vec![],
+ vec![],
+ )
+ .expect_err("parent paths must not enter a semantic manifest");
+ assert!(error.to_string().contains("parent path is not valid"));
+
+ let error = ArtifactManifest::new(
+ vec![],
+ vec![],
+ Some(InitrdRecord::new("/boot/initrd-rt.img", "digest")),
+ vec![],
+ vec![],
+ )
+ .expect_err("absolute initrd paths must not enter a semantic manifest");
+ assert!(error.to_string().contains("absolute path is not valid"));
+}
+
+#[test]
fn collects_semantic_facts_from_native_rootfs_and_tar_artifact() {
let fixture = tempdir().expect("temporary directory");
let rootfs = fixture.path().join("rootfs");