diff options
| author | Hermes Agent <hermes@localhost> | 2026-08-12 05:21:12 +0000 |
|---|---|---|
| committer | Hermes Agent <hermes@localhost> | 2026-08-12 05:21:12 +0000 |
| commit | 36d844cb23d5bfbc01874c71ec625892f2e6de67 (patch) | |
| tree | 56d905b2572f18f6d895808dd4ae4dde9808e409 /tests | |
| parent | 3a47e14cbe6e15de0758c8bd4233a8d84ff80aa8 (diff) | |
Validate semantic manifest paths
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/compare.rs | 23 |
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"); |