Skip to content

Conversation

@Chemaclass
Copy link
Member

@Chemaclass Chemaclass commented Dec 28, 2025

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:

  • Parallel tests to hang for 6+ hours until timeout
  • The issue occurs in GitHub Actions on Ubuntu but not locally on macOS
  • The root cause appears to be the function calls added inside hook execution paths

Technical Details

The reverted changes attempted to:

  1. Enable coverage trap (bashunit::coverage::enable_trap) inside execute_file_hook and execute_test_hook
  2. Add a fallback to track src/ folder when auto-discovery yields no paths

Even 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.

Omar Gallo and others added 8 commits December 28, 2025 09:56
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
@Chemaclass Chemaclass closed this Dec 29, 2025
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.

2 participants