mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
Two CI failures in buzz-terminal, both platform-shaped. lifecycle_tests::reader_drains_through_termination_and_reap took 10.008s on Linux and passed on macOS. The test never dropped `pair.slave`, so the master could not reach EOF: a PTY master stays readable while any process holds the slave open, and the test itself was one. Darwin ends the read when the session leader exits, which hid the retained slave on the platform the test was written on. The runtime already drops the slave (terminal_runtime.rs:441); the test now mirrors it. 10.009s -> 5.24ms. The timing assertion is also narrowed to the instant `stop` is called, so it measures child termination rather than reader teardown -- the stall was misreporting itself as a wedged child. Narrowing alone would make the test blind to a wedged reader, so `join`'s silent deadline abandon becomes an assert: with a wedged-reader mutant and the narrowed clock, the old `return` passed green in 10.07s. `--all-targets` compiles `#[cfg(test)]` modules, so a Windows check built env_fence_tests and lifecycle_tests, which drive real PTYs, `libc::kill`, and unix permission bits (E0432/E0433/E0425). Both modules are now `#[cfg(all(test, unix))]`. context_tests is pure string logic and stays portable. Co-authored-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@buzz.block.builderlab.xyz> Signed-off-by: npub17jjz49l9jjmhhk7cac63j8yt9z555n9cw8vk7v5jz4vzw4ppld5qgj57cc <f4a42a97e594b77bdbd8ee35191c8b28a94a4cb871d96f32921558275421fb68@buzz.block.builderlab.xyz>