refactor(coverage): improve coverage inside lifecycle hooks#576
Closed
Chemaclass wants to merge 8 commits intomainfrom
Closed
refactor(coverage): improve coverage inside lifecycle hooks#576Chemaclass wants to merge 8 commits intomainfrom
Chemaclass wants to merge 8 commits intomainfrom
Conversation
The src/ fallback is already handled in runner.sh after auto-discovery. Having it in both places is redundant since runner.sh calls init() after setting BASHUNIT_COVERAGE_PATHS.
The complex trap was: - Redundant: record_line already calls should_track internally - Semantically incorrect: used LINENO from frame 0 with BASH_SOURCE[1] - Adding overhead: extra function call on every line executed Revert to simple, efficient trap.
- Add SC2034 disable for environment variables used by bashunit - Use explicit BASHUNIT_COVERAGE_PATHS="src/" instead of relying on fallback
Runs bashunit on fixture file with coverage enabled to verify the complete flow works correctly, including hook coverage attribution. Skip test in parallel mode as coverage state is not shared across workers.
The coverage hooks acceptance tests cause parallel test runs to hang in GitHub Actions CI, resulting in 6-hour timeouts. This happens on Ubuntu runners but not on macOS locally. The runner.sh changes for enabling coverage in hooks remain in place - only the problematic test files are removed until the root cause can be identified. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
The coverage tracking in lifecycle hooks feature causes parallel test runs to hang indefinitely in GitHub Actions CI. This reverts all changes from PR #574 until the root cause of the parallel test hangs can be identified and fixed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR originally attempted to improve coverage tracking inside lifecycle hooks, but the implementation caused parallel test runs to hang indefinitely in CI.
Changes reverted: All changes from the original PR #574 have been reverted as they caused:
Technical Details
The reverted changes attempted to:
bashunit::coverage::enable_trap) insideexecute_file_hookandexecute_test_hooksrc/folder when auto-discovery yields no pathsEven though coverage is disabled in CI and the trap code returns early, the presence of these function calls inside the hook execution path caused parallel test execution to hang.
Next Steps
This PR can be closed as it now has no functional changes. The coverage-in-hooks feature needs further investigation before it can be safely implemented.