Skip to content

test: cover the strict daemon resolver's missing-file rejection (#145) - #156

Merged
hellno merged 3 commits into
mainfrom
hellno/145-strict-resolver-missing-file-test
Jun 30, 2026
Merged

test: cover the strict daemon resolver's missing-file rejection (#145)#156
hellno merged 3 commits into
mainfrom
hellno/145-strict-resolver-missing-file-test

Conversation

@hellno

@hellno hellno commented Jun 29, 2026

Copy link
Copy Markdown
Owner

What

Adds the one missing case from #145 to mod release_resolver in crates/deckard-signerd/src/supervise.rs: a test asserting the strict release resolver verify_bundled_binary() rejects a missing file.

The module already covered accept + group/world-writable file + symlink + world-writable parent (incl. sticky); the missing-file rejection from the issue's list was the only gap. (Production already refuses it via symlink_metadata erroring before any predicate; this locks that contract.)

Why it runs in CI

Default-feature cargo test -p deckard-signerd (no dev-signerd-bin) compiles the strict not(dev-signerd-bin) path, so the test executes in CI's linux workspace-test job — the exact path that ships and that #134 slipped through untested.

Verification

  • cargo fmt --all --check clean
  • cargo test -p deckard-signerd --lib release_resolver → 6 passed (incl. the new rejects_a_missing_file)
  • cargo clippy -p deckard-signerd --all-targets -D warnings clean

Closes #145

hellno added 3 commits June 29, 2026 22:39
The release resolver verify_bundled_binary() already refuses a missing
candidate (symlink_metadata errors before any predicate), but mod
release_resolver covered accept + world/group-writable file + symlink +
world-writable parent (incl. sticky) and never the missing-file case from
the issue's reject list. Add that one test so the contract is locked.

Default-feature cargo test -p deckard-signerd compiles the strict
(not dev-signerd-bin) path, so the test runs in CI's workspace job.

Closes #145
@hellno
hellno merged commit 6ad2ef0 into main Jun 30, 2026
5 checks passed
@hellno
hellno deleted the hellno/145-strict-resolver-missing-file-test branch June 30, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Unit-test the strict (release) daemon resolver — verify_bundled_binary against a Contents/MacOS fixture

1 participant