Skip to content

Fix the macOS release test gate - #6

Merged
Quorafind merged 3 commits into
mainfrom
fix/macos-test-gate
Oct 7, 2026
Merged

Quorafind merged 3 commits into
mainfrom
fix/macos-test-gate

Conversation

@Quorafind

Copy link
Copy Markdown
Collaborator

The v1.9.1 tag's test job (macos-14) failed on one unit test, on_windows_the_host_runs_under_the_helper_with_a_pipe_its_reads_and_no_network: it builds a Windows launch from C:\node\node.exe, and only a Windows Path splits that at its backslash. The product takes that path only on Windows, so the test is now #[cfg(windows)].

That failure stopped cargo test before every crate after rebon-plugin-sandbox, so the release workflow now runs the multi-crate step with --no-fail-fast. This PR's run is the full macOS test pass for 1.9.1; npm already carries 1.9.1 (publishing does not wait on test), so no re-tag.

Reviewed by fly (r199/r200).

The test hands wrap_host a Windows request, `C:\node\node.exe` among
it, and checks that Node's folder is granted. Only a Windows Path splits
that at its backslash: on macOS its parent is empty, so the v1.9.1
tag's test job failed on `--allow-read C:\node`. The product only takes
this path on Windows, so the test now runs only there.
cargo test stops at the first failing test binary, so the v1.9.1 tag's
failure in rebon-plugin-sandbox left every crate after it untested on
macOS. With --no-fail-fast one run names every failure.
A background shell or monitor finished only when both output readers
reached end of file. A process outside the shell's group that holds a
pipe's write end keeps that from happening, and on macOS that can be
any process another thread spawned while the pipe was made: without
pipe2, std sets close-on-exec in a second step. The shell's group was
already killed and reaped, yet its completion never came, which is
how command_monitor_auto_stop failed under a loaded macOS runner.

Once the child has exited and its group is reaped, the readers now
share a two-second grace to drain what the pipes hold, then stop.
Cutting a reader off is not an error, so a clean exit still reads as
exited.
@Quorafind
Quorafind force-pushed the fix/macos-test-gate branch from 4138908 to fe39fd6 Compare October 7, 2026 06:39
@Quorafind
Quorafind merged commit 57d5559 into main Oct 7, 2026
9 checks passed
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.

1 participant