测试契约摘录:TC-OUT-*(Arden · R9)
www 工作副本 · M4 摘录(Arden · 2026-10-21 Asia/Shanghai)
双轨:本页为 test-contracts.md §7 的 www 摘录(仅 TC-OUT-01…09 / S10 输出观察侧)。完整 TC-* 表仍在 mvdocs;整篇迁入属编排波以后——本波不开 toolflow 全文 / host-integration / 完整 test-contracts。
语义权威:output-inspection.md(T10);观察不驱动 Run 对齐 toolflow §7.4.3 /TC-RUN-05。
实现对拍:见下文;对照 tipe46c042(Arden 不改include//src/)。
相关:overview · camera-acquisition · TC-ACQ 摘录 · 预览 http://127.0.0.1:8792
7. 输出观察 TC-OUT-*(T10 · Arden · R9)
事件闭集与语义权威见 output-inspection.md(T10);本表只做可勾选断言。不改事件名/码表。对外标识 ToolId。场景骨架 S10。观察侧断言与编排 Run 契约交叉时,以本表 +
TC-RUN-05互指为准。
| ID | 勾 | 前置 | 动作 | 期望 code / 状态 | 对应章节 | 场景 |
|---|---|---|---|---|---|---|
| TC-OUT-01 | [ ] | KeepLatest;工具成功且输出集合非空 | 一次 Run 后观察面收到集合事件 | 发 SnapshotReplaced;当前可打开集合身份已更新;不得静默跳过 | output-inspection §集合级事件 | S10 |
| TC-OUT-02 | [ ] | KeepLatest;工具成功且输出集合为空 | 一次 Run | 必须发 EmptySnapshot;禁止静默无事件;不得继续把上次非空集合标为「当前」 | output-inspection(T10 空快照) | S10 |
| TC-OUT-03 | [ ] | KeepLatest;保留/复制失败或配额不足(观察侧) | 业务工具仍可成功并完成路由 | 观察面发 Unavailable;不得把旧成功集合冒充为本轮新结果;业务 Outputs 路由不受观察失败改写 | output-inspection | S10 |
| TC-OUT-04 | [ ] | 已保留集合;触发会话淘汰/预算回收/策略关闭 | 淘汰已保留集合 | 发 Evicted;此后对该身份 TryOpenLatest 不可用 | output-inspection | S10 |
| TC-OUT-05 | [ ] | 已有上次成功快照;本轮工具失败 | Run 失败路径 | 不替换最近成功集合;观察「当前成功快照」仍指向上次成功身份,并与最新失败状态区分(对齐 TC-RUN-05) | output-inspection;§10.1 | S10 / S03 |
| TC-OUT-06 | [ ] | KeepLatest;当前已有保留集合(含空) | Subscribe(replay_latest=true)再收后续事件 | 连接后立即重放当前保留对应事件(含 EmptySnapshot);之后不漏更新;回调不得隐式 Run | output-inspection 动态连接 | S10 |
| TC-OUT-07 | [ ] | 已 TryOpen 得查看者句柄;随后集合被 Evicted | 淘汰 + 继续持有已打开查看者 | 已打开查看者不被强制关闭;新的 TryOpenLatest 对该身份不可用;关闭查看者后不阻挡会话清理契约 | output-inspection 查看者寿命 | S10 |
| TC-OUT-08 | [ ] | 对照两会话:A=KeepLatest,B=ReleaseAfterRouting | A 跑成功后订阅可重放;B 路由后无保留再连调试器 | A:可重放当前集合;B:已回收过去结果无法补取;动态连接 ≠ 无限历史;ReleaseAfterRouting 不冒充可恢复 | output-inspection KeepLatest vs ReleaseAfterRouting | S10 |
| TC-OUT-09 | [ ] | 任意观察订阅/重放/TryOpen 已挂 | 仅观察回调或查询(不显式 Run) | 永不隐式触发 Run、链接赋值或重新采集(升格/对齐 TC-RUN-05;与显示只观察一致) | output-inspection;toolflow §7.4.3;TC-RUN-05 | S10 / S03 |
实现对拍状态(tip e46c042 · 按实 · 可勾选处)
上表
[ ]保持未勾。外形 ≠ 验收。
| TC | 声明外形(include) | 实现对拍状态 | 缺口归属 |
|---|---|---|---|
| TC-OUT-01…04 | OutputCollectionEventKind + IImageOutputInspector | 外形有(含强制 EmptySnapshot 枚举);事件时序 未验收 | Bruno |
| TC-OUT-05 / 09 | 头注:观察不驱动 Run;GetOutput ≠ 保留集 | 隔离意图在;门禁 未测 | Bruno · Chase |
| TC-OUT-06…08 | KeepLatest / ReleaseAfterRouting / Subscribe 重放字段 | 策略枚举在;查看者寿命与重放 未验收 | Bruno |
| 显示打开 | ImageDisplay.TrySetImageFromLatest(M5) | 托管外形在;见 TC-DISP | Rhett |
场景骨架 S10(完整文仍在 mvdocs examples-scenarios):
| S10 | TC-OUT-01…09;交叉 TC-RUN-05 | T10 集合事件可勾选;观察永不驱动 Run;KeepLatest vs ReleaseAfterRouting | S10;output-inspection;Arden · R9 |
摘录状态:2026-10-21 Asia/Shanghai · tip e46c042。完整 test-contracts / toolflow / host-integration 不在本波。