diff --git a/crates/deckard-signerd/src/supervise.rs b/crates/deckard-signerd/src/supervise.rs index fc9af8a..8044d47 100644 --- a/crates/deckard-signerd/src/supervise.rs +++ b/crates/deckard-signerd/src/supervise.rs @@ -904,6 +904,19 @@ mod tests { let _ = std::fs::remove_dir_all(&dir); } + #[test] + fn rejects_a_missing_file() { + let dir = fresh_dir("missing"); + std::fs::set_permissions(&dir, std::fs::Permissions::from_mode(0o755)).unwrap(); + // Never written: the candidate points at a file that does not exist. + let candidate = dir.join("deckard-signerd"); + assert!( + verify_bundled_binary(&candidate).is_err(), + "a missing daemon binary must be refused, never silently resolved" + ); + let _ = std::fs::remove_dir_all(&dir); + } + #[test] fn rejects_a_world_writable_parent_dir() { let dir = fresh_dir("wwdir");