Skip to content

perf(runner): cache coverage-enabled flag in hot path#670

Merged
Chemaclass merged 2 commits into
mainfrom
perf/664-cache-coverage-flag
May 12, 2026
Merged

perf(runner): cache coverage-enabled flag in hot path#670
Chemaclass merged 2 commits into
mainfrom
perf/664-cache-coverage-flag

Conversation

@Chemaclass
Copy link
Copy Markdown
Member

Summary

  • Introduce bashunit::runner::sync_coverage_flag that resolves BASHUNIT_COVERAGE into _BASHUNIT_COVERAGE_ON (1|0) once per run.
  • Replace 9 hot-path call sites of bashunit::env::is_coverage_enabled in src/runner.sh with a direct [ "$_BASHUNIT_COVERAGE_ON" = 1 ] check — no function dispatch.
  • Public bashunit::env::is_coverage_enabled is unchanged, so coverage unit tests that toggle BASHUNIT_COVERAGE mid-run keep working.

Test plan

  • Adds test_sync_coverage_flag_sets_one_when_enabled, ..._zero_when_disabled, ..._zero_when_unset in tests/unit/runner_test.sh
  • ./bashunit tests/unit/ green (817 passed)
  • ./bashunit --parallel tests/ green (1052 passed)
  • make sa clean
  • make lint clean
  • Bash 3.0+ compat preserved

Closes #664

@Chemaclass Chemaclass added enhancement New feature or request refactoring Refactoring or cleaning related labels May 12, 2026
@Chemaclass Chemaclass self-assigned this May 12, 2026
Resolve BASHUNIT_COVERAGE into _BASHUNIT_COVERAGE_ON once per run via
bashunit::runner::sync_coverage_flag; replace 9 hot-path call sites in
runner.sh with a direct "= 1" string compare instead of a function
dispatch.

The public bashunit::env::is_coverage_enabled is unchanged so tests that
toggle BASHUNIT_COVERAGE mid-run keep working.

Closes #664
@Chemaclass Chemaclass force-pushed the perf/664-cache-coverage-flag branch from 59de045 to 67d3814 Compare May 12, 2026 08:51
@Chemaclass Chemaclass merged commit a3de42b into main May 12, 2026
26 checks passed
@Chemaclass Chemaclass deleted the perf/664-cache-coverage-flag branch May 12, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request refactoring Refactoring or cleaning related

Projects

None yet

Development

Successfully merging this pull request may close these issues.

perf(runner): cache coverage-enabled flag at startup

1 participant