Skip to content

feat: add containerized test runner for macOS development#55

Merged
shaneutt merged 3 commits intopraxis-proxy:mainfrom
usize:feat/test-container
Apr 20, 2026
Merged

feat: add containerized test runner for macOS development#55
shaneutt merged 3 commits intopraxis-proxy:mainfrom
usize:feat/test-container

Conversation

@usize
Copy link
Copy Markdown
Member

@usize usize commented Apr 20, 2026

Summary

  • Add make test-container which runs the full test suite inside an Alpine Linux container, bind-mounting the project directory so tests always run against the current working tree
  • Add linux_arm64 SHA256 entries for vegeta and fortio, and broaden h2spec amd64 fallback to all arm64 platforms
  • Fix sha256sum flag portability for BusyBox compatibility

Related to #54 — this provides a workaround while native macOS test support is investigated.

Test plan

  • make test-container passes the full test suite
  • Rebuilds after source-only changes reuse cached dependencies from the named volume
  • make test on Linux CI is unaffected
  • make tools succeeds on linux_arm64

Running `make test` on macOS is unreliable due to missing tools
(sha256sum), architecture mismatches (h2spec has no arm64 builds),
and networking differences from the Linux production target.

Add `make test-container` which bind-mounts the project into an
Alpine container and runs the full test suite. A named volume
caches compiled dependencies and tools between runs.

Also fix Makefile portability issues uncovered along the way:
- Add linux_arm64 SHA256 entries for vegeta and fortio
- Broaden h2spec amd64 fallback to all arm64 platforms
- Use sha256sum short flags (-cs) for BusyBox compatibility
- Allow BINUTILS_DIR override via environment variable

Makefile and Containerfile additions were assisted by Opus 4.6.
@usize usize requested a review from shaneutt April 20, 2026 04:54
@usize usize changed the title feat: add containerized test runner for macOS development feat: add containerized test runner for MacOS development Apr 20, 2026
@usize usize changed the title feat: add containerized test runner for MacOS development feat: add containerized test runner for macOS development Apr 20, 2026
usize added 2 commits April 19, 2026 22:02
BusyBox and GNU coreutils sha256sum have incompatible flags:
GNU supports --status but not -s, BusyBox supports -s but not
--status. The status flag is not necessary — removing it causes
sha256sum to print a confirmation line to stdout on success,
but exit code behavior is unchanged.
Rename test-container-build/test-container to
test-container/test-container-run, matching the existing
container/container-run pattern.
@shaneutt shaneutt self-assigned this Apr 20, 2026
@shaneutt shaneutt added this to the v0.5.0 milestone Apr 20, 2026
@github-project-automation github-project-automation Bot moved this to Backlog in AI Gateway Apr 20, 2026
@shaneutt shaneutt moved this from Backlog to Review in AI Gateway Apr 20, 2026
@shaneutt shaneutt merged commit 60bff86 into praxis-proxy:main Apr 20, 2026
13 checks passed
@github-project-automation github-project-automation Bot moved this from Review to Done in AI Gateway Apr 20, 2026
This was referenced Apr 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants