Skip to content

feat(#460): Binary-size regression gate#499

Merged
justinjoy merged 2 commits intomainfrom
feat/460-binary-size-gate
Apr 14, 2026
Merged

feat(#460): Binary-size regression gate#499
justinjoy merged 2 commits intomainfrom
feat/460-binary-size-gate

Conversation

@justinjoy
Copy link
Copy Markdown
Collaborator

Summary

  • Add scripts/ci/check-text-size.sh that extracts .text section size from libwirelog.so, compares against committed baseline, and fails if growth exceeds 5120-byte budget (section 14, feat: Option C user-defined I/O adapters (static + Android + optional CLI dlopen) #446)
  • Record Linux GCC baseline (148496 bytes) in tests/baseline_size.txt, verified via Docker ubuntu:24.04 build
  • Integrate as blocking gate in ci-pr.yml (Linux GCC only) and non-blocking monitor in ci-main.yml

Test plan

  • Local macOS test: PASS (delta -56688, shrinkage direction)
  • Linux Docker test: PASS (delta 0, baseline exact match)
  • FAIL path verified: artificially low baseline triggers expected failure with update instructions
  • Error handling: missing library, missing args, invalid baseline all produce clear errors
  • Existing test suite: 117/117 PASS, no regressions

Closes #460

Add scripts/ci/check-text-size.sh that extracts the .text section size
from the built library, compares against the committed baseline in
tests/baseline_size.txt, and fails if growth exceeds the 5120-byte
budget (section 14, #446). Baseline recorded from Linux GCC build
(ubuntu:24.04, 148496 bytes).
Add .text size regression gate to ci-pr.yml (blocking, Linux GCC only)
and ci-main.yml (non-blocking monitoring). Runs after build+test, before
sanitizers, to avoid wasting compute on size-rejected builds.
@justinjoy justinjoy force-pushed the feat/460-binary-size-gate branch from a7d4565 to e7cfbe5 Compare April 14, 2026 04:40
@justinjoy justinjoy merged commit fa9f997 into main Apr 14, 2026
7 checks passed
@justinjoy justinjoy deleted the feat/460-binary-size-gate branch April 14, 2026 05:19
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.

[NEW] Binary-size regression gate

1 participant