Skip to content

Add release-artifact contract check; port hardware smoke script; add … - #6

Merged
rlnorthcutt merged 1 commit into
mainfrom
task/testing
Aug 9, 2026
Merged

rlnorthcutt merged 1 commit into
mainfrom
task/testing

Conversation

@rlnorthcutt

Copy link
Copy Markdown
Contributor

…TESTING.md

Compares this repo's test coverage against the sibling omnideck/desktop's
tests/, scripts/, and TESTING.md, porting what's proportionate to this
repo's current scope and closing the two known gaps already flagged in
RELEASING.md.

  • tests/releasecontract/verify-release.mjs: static release-artifact contract (exact 5-artifact matrix, per-format magic bytes, checksum verification), scaled down from the sibling's 10-artifact/6-target matrix. Wired into release.yml's publish job as a gate before attestation/publish — catches a corrupted/truncated/wrong-architecture artifact, which fail_on_unmatched_files alone doesn't. Verified against the real published v0.5.0-alpha.2 release.

  • tests/hardware/run.sh: automates the packaged-smoke launch/validate/ cleanup cycle. Found and fixed two real bugs while testing it for real, not just porting working code: pgrep -x silently never matched omnideck-desktop (kernel truncates comm to 15 bytes; switched to pgrep -f), and an AppImage launched via --appimage-extract-and-run reparents away from the tracked PID during extraction, leaving cleanup unable to kill it (added a pkill -f fallback). Both use the [o]mnideck-desktop bracket guard against self-matching.

  • tests/hardware/validate-proof.test.mjs: unit tests for the proof validator.

  • tests/manual/published-artifact.md: checksum/attestation trust- verification walkthrough — confirmed gh attestation verify works against the real release before documenting it.

  • TESTING.md: ties the test layers together (source, release contract, native smoke, manual), sized to this repo's actual maturity rather than the sibling's full alpha/beta/RC/stable promotion ladder. Documents what was deliberately not ported (self-hosted hardware runners, run.ps1, destructive host-reset tooling, post-publication re-verification) and why, rather than silently skipping it.

RELEASING.md, README.md, and the two tests/*/README.md files updated to
match.

…TESTING.md

  Compares this repo's test coverage against the sibling omnideck/desktop's
  tests/, scripts/, and TESTING.md, porting what's proportionate to this
  repo's current scope and closing the two known gaps already flagged in
  RELEASING.md.

  - tests/releasecontract/verify-release.mjs: static release-artifact
    contract (exact 5-artifact matrix, per-format magic bytes, checksum
    verification), scaled down from the sibling's 10-artifact/6-target
    matrix. Wired into release.yml's publish job as a gate before
    attestation/publish — catches a corrupted/truncated/wrong-architecture
    artifact, which fail_on_unmatched_files alone doesn't. Verified against
    the real published v0.5.0-alpha.2 release.

  - tests/hardware/run.sh: automates the packaged-smoke launch/validate/
    cleanup cycle. Found and fixed two real bugs while testing it for real,
    not just porting working code: pgrep -x silently never matched
    omnideck-desktop (kernel truncates comm to 15 bytes; switched to
    pgrep -f), and an AppImage launched via --appimage-extract-and-run
    reparents away from the tracked PID during extraction, leaving cleanup
    unable to kill it (added a pkill -f fallback). Both use the
    [o]mnideck-desktop bracket guard against self-matching.

  - tests/hardware/validate-proof.test.mjs: unit tests for the proof
    validator.

  - tests/manual/published-artifact.md: checksum/attestation trust-
    verification walkthrough — confirmed `gh attestation verify` works
    against the real release before documenting it.

  - TESTING.md: ties the test layers together (source, release contract,
    native smoke, manual), sized to this repo's actual maturity rather than
    the sibling's full alpha/beta/RC/stable promotion ladder. Documents what
    was deliberately not ported (self-hosted hardware runners, run.ps1,
    destructive host-reset tooling, post-publication re-verification) and
    why, rather than silently skipping it.

  RELEASING.md, README.md, and the two tests/*/README.md files updated to
  match.
@rlnorthcutt
rlnorthcutt merged commit a2f1ca7 into main Aug 9, 2026
1 check passed
@rlnorthcutt
rlnorthcutt deleted the task/testing branch August 9, 2026 14:37
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.

1 participant