commit dae249d647b1c5ae2ca480f312df0ceb9632c01b
parent a301d8742ed475ec59ce528911d4b7edc58b33e2
Author: triesap <tyson@radroots.org>
Date: Tue, 22 Sep 2026 17:11:58 +0000
tests: prove bounded write deadline and closed-pipe causes
- Add intended-cause controls for write_fd_bounded: a closed read end yields a
bounded write failure, and a full undrained pipe yields write_deadline_expired
under the parent deadline.
- Keeps C002B parent-owned write deadlines proven for the intended cause.
Diffstat:
1 file changed, 23 insertions(+), 0 deletions(-)
diff --git a/tests/test_provider_helpers.mojo b/tests/test_provider_helpers.mojo
@@ -17,6 +17,7 @@ from parent_lifecycle import (
pid_not_waitable,
read_all_bounded,
read_line_bounded,
+ write_fd_bounded,
write_raw,
)
from strict_fixture import (
@@ -795,6 +796,28 @@ def test_bounded_read_caps_fail_for_intended_cause() raises:
assert_true(stdout_message.find("stdout_overflow") >= 0)
+def test_write_deadline_and_closed_pipe_causes() raises:
+ var closed = make_pipe()
+ close_fd(closed.read_fd)
+ var closed_reason = write_fd_bounded(closed.write_fd, "payload", 500)
+ close_fd(closed.write_fd)
+ assert_true(
+ closed_reason == "write_pipe_closed" or closed_reason == "write_failed"
+ )
+
+ var full = make_pipe()
+ var payload = String("")
+ for _ in range(1024):
+ payload += "y"
+ for _ in range(7):
+ var doubled = String(payload)
+ payload = payload + doubled
+ var deadline_reason = write_fd_bounded(full.write_fd, payload, 200)
+ close_fd(full.read_fd)
+ close_fd(full.write_fd)
+ assert_equal(deadline_reason, "write_deadline_expired")
+
+
def test_owned_child_reaped_after_early_terminate() raises:
var stub = spawn_max_local_stub(0, "count_requests", 1)
stub.terminate()