test: compare fixture renders with golden frames on lavapipe #5

Merged
natsukium merged 1 commit from golden into main 2026-09-26 01:00:32 +09:00
Owner

Why

Nothing checked the pixels felis-reel produces, so a felis bump or a frame-loop change could alter every video unnoticed.

What

  • tests/golden.rs runs the binary on felis-fcast's hello and scroll fixtures (tests/fixtures/) with DejaVu Sans Mono pinned by --font-file, a comment-only config via --theme, and the child's Vulkan loader pinned to lavapipe (VK_DRIVER_FILES; felis requests Vulkan only on Linux, so no hardware adapter can be chosen). Five frames are compared byte for byte with tests/golden/*.png; FELIS_REEL_BLESS=1 rewrites them.
  • The dev shell exports FELIS_REEL_GOLDEN_FONTS and (Linux) FELIS_REEL_GOLDEN_ICD; outside it the tests skip. CI's existing nix develop -c cargo test --all-features runs them.
  • Backlog drops the golden-test item; README's Development section explains blessing.

Verification

  • Blessed, then re-ran: stable across runs locally.
  • pi review (luna): PASS, no findings.
## Why Nothing checked the pixels felis-reel produces, so a felis bump or a frame-loop change could alter every video unnoticed. ## What - `tests/golden.rs` runs the binary on felis-fcast's hello and scroll fixtures (`tests/fixtures/`) with DejaVu Sans Mono pinned by `--font-file`, a comment-only config via `--theme`, and the child's Vulkan loader pinned to lavapipe (`VK_DRIVER_FILES`; felis requests Vulkan only on Linux, so no hardware adapter can be chosen). Five frames are compared byte for byte with `tests/golden/*.png`; `FELIS_REEL_BLESS=1` rewrites them. - The dev shell exports `FELIS_REEL_GOLDEN_FONTS` and (Linux) `FELIS_REEL_GOLDEN_ICD`; outside it the tests skip. CI's existing `nix develop -c cargo test --all-features` runs them. - Backlog drops the golden-test item; README's Development section explains blessing. ## Verification - Blessed, then re-ran: stable across runs locally. - pi review (luna): PASS, no findings.
test: compare fixture renders with golden frames on lavapipe
All checks were successful
ci / cargo fmt / clippy / test / deny (pull_request) Successful in 57s
c22432481c
Nothing checked the pixels felis-reel produces, so a felis bump or a
frame-loop change could alter every video unnoticed. The golden tests
render felis-fcast's hello and scroll fixtures through the binary with
DejaVu Sans Mono pinned by --font-file, an empty config via --theme, and
the Vulkan loader pinned to lavapipe, so neither host fonts, the user's
config nor a hardware GPU reach the pixels, and compare selected frames
byte for byte. The dev shell provides the font files and the ICD path;
outside it the tests skip, and CI runs them through its nix develop.

Assisted-by: Claude Code
natsukium deleted branch golden 2026-09-26 01:00:32 +09:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
natsukium/felis-reel!5
No description provided.