1.4 KiB
1.4 KiB
Case: wait-wakes-on-matching-run-event
用例意义
验证 wait 能在后续匹配事件出现时被唤醒,并返回稳定的事件载荷。
前置条件
- 空数据库已初始化
- 已创建运行
run_blog_wait_001 - 已添加任务
T1并完成一次dispatch - 已知当前尝试线程为
THREAD_ID wait在工作线程写入阻塞状态前启动
输入
orch --db TMPDIR/coord.db --json wait --run run_blog_wait_001 --for task_blocked --after-event 0 --timeout-seconds 2
inbox --db TMPDIR/coord.db --json claim --agent worker-a --thread THREAD_ID
inbox --db TMPDIR/coord.db --json update --agent worker-a --thread THREAD_ID --status blocked --summary "Need logging decision" --payload-json '{"question":"stdout or stderr?"}'
预期输出
wait退出码为0wait.data.woke == truewait.data.events长度为1- 唯一事件的
type == "task_blocked" - 事件
summary == "Need logging decision" - 事件
payload.question == "stdout or stderr?"
断言结论
wait不是简单睡眠,而是面向 run 事件流的阻塞读取接口task_blocked事件会把 worker 提问摘要和结构化 payload 暴露给 leader
补充约束
--for支持逗号分隔的事件类型列表;该用例验证的是单事件过滤wait返回成功时也会给出next_event_id,便于后续增量等待