Skip to content

xtask: ensure resolver tests use current ABI#935

Closed
brandonpayton wants to merge 1 commit into
mainfrom
fix/xtask-current-test-fixtures
Closed

xtask: ensure resolver tests use current ABI#935
brandonpayton wants to merge 1 commit into
mainfrom
fix/xtask-current-test-fixtures

Conversation

@brandonpayton

Copy link
Copy Markdown
Member

Summary

  • derive archive filename fixtures from the current shared ABI
  • generate valid executable and kernel Wasm fixtures with the exports enforced by artifact validation
  • retain explicit regression coverage that empty and exportless executables are rejected

Root cause

Artifact validation became stricter and the ABI advanced, while resolver tests still hardcoded ABI 4 and emitted empty or minimally invalid Wasm. The fixtures were therefore exercising stale artifacts instead of the intended resolver behavior.

Validation

  • ./scripts/dev-shell.sh bash -c 'HOST_TARGET="$(rustc -vV | awk '\\/^host/ {print $2}'\\)"; cargo test -p xtask --target "$HOST_TARGET"' (350 passed)

The package resolver correctly rejects empty and exportless program artifacts, but six older tests still produced those stale fixtures. That made one remote-fetch test fall back to a forbidden source build and five symlink tests fail before reaching the behavior they cover. The archive-stage smoke test also passed the current shared ABI while asserting an ABI 4 filename.

Generate structurally valid test Wasm from the shared required-export contracts, derive the smoke-test filename from ABI_VERSION, and add a negative guard that preserves fail-closed artifact validation. Production resolver behavior is unchanged.

Validation: scripts/dev-shell.sh bash -c "cargo test -p xtask --target aarch64-apple-darwin" (350 passed).
@brandonpayton brandonpayton changed the title xtask: keep resolver fixtures valid across ABI changes xtask: ensure resolver tests use current ABI Jul 13, 2026
@brandonpayton brandonpayton added the ready-to-ship Maintainer attests the exact tested head and requests merge preparation. label Jul 13, 2026
@brandonpayton

Copy link
Copy Markdown
Member Author

Superseded by #936, which retains this PR as patch-equivalent purpose commits in the consolidated Homebrew publisher batch and reruns the combined validation on current main.

@brandonpayton brandonpayton deleted the fix/xtask-current-test-fixtures branch July 13, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-ship Maintainer attests the exact tested head and requests merge preparation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant