test: stabilize POSIX descendant containment - #177
Conversation
📝 WalkthroughWalkthroughAdds a POSIX descendant-provider fixture and updates descendant termination tests with POSIX polling, command observation, deterministic timeout control, and process cleanup assertions. ChangesPOSIX descendant termination testing
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
Summary
Root cause
The production runner starts its timeout immediately after spawning. The former fixture had to cold-start a Node provider, cold-start a second Node descendant, and asynchronously write the descendant PID. Under host scheduling pressure the valid timeout cleanup could kill the group before that record existed, so the test failed before it had observed the expected command rejection.
Safety and behavior
This does not change production source, configured timeout values, Windows coverage,
shell: false, or POSIX process-group containment. The new fixture is copied to a private test sandbox and made executable there; it is invoked directly through the existing shell-free runner path.Validation
npm testnpm run test:corenpm run test:coveragenpm run lintnpm run typechecknpm run buildnpm run smoke:clinpm run check:packnpm run test:packageRefs #176
Summary by CodeRabbit
Bug Fixes
Tests