测试契约摘录:TC-SESS-*(Arden · R10)
www 工作副本 · M3 摘录(Arden · 2026-10-21 Asia/Shanghai)
双轨:本页为 test-contracts.md §9 的 www 摘录(仅 TC-SESS-01…05 / S11 会话停流侧)。完整 TC-* 表仍在 mvdocs;整篇迁入属编排波以后——本波不开 toolflow / host-integration / 完整 test-contracts。
语义权威:session-lifecycle.md;停止矩阵权威仍为 toolflow §7.4.3(T9,不改)。
实现对拍:见下文;对照 tipe46c042(Arden 不改include//src/)。
相关:overview · memory-management · TC-MEM 摘录 · 预览 http://127.0.0.1:8792
9. 会话停流 TC-SESS-*(阶段 D · Arden · R10)
语义权威见 session-lifecycle.md;停止矩阵权威仍为 toolflow §7.4.3(T9)——本文不改其语义。本表只做排空/归还/故障可勾选断言。场景骨架 S11。宿主侧分派见 host-integration.md §4。
| ID | 勾 | 前置 | 动作 | 期望 code / 状态 | 对应章节 | 场景 |
|---|---|---|---|---|---|---|
| TC-SESS-01 | [ ] | 采集会话 Running;有在途帧/工作 | 走完整停流:Quiescing → Draining/Cancelling → Releasing → Returning → Stopped | 结束须同时:无新回调、队列空、工具工作结束、会话拥有的图像/访问已关闭、SDK 归还已完成;不得边持最后引用边等自己的 ReturnCompleted | session-lifecycle 状态机 / 结束条件 | S11 |
| TC-SESS-02 | [ ] | 宿主已把图像导出到会话外窗口/历史(外部保留) | 会话停流并企图销毁 SDK | 停止结果报告「仍有外部保留」;禁止假称设备资源已归还;要立即毁 SDK 须先复制到独立存储并关闭原图 | session-lifecycle「外部保留」 | S11 |
| TC-SESS-03 | [ ] | 停流等待中;调用方超时触发 | 超时返回 | 返回未排空/故障结果(可含 BufferId、活动访问、pin、归还队列、持有时长);底层安全清理继续;不得强行回收仍被 native 使用的地址 | session-lifecycle「超时」 | S11 |
| TC-SESS-04 | [ ] | 归还失败 / 相机断线 / 消费者异常等 | 故障注入(fake) | 进入可观察故障路径;归还不自动再次 Release;清理泵继续处理其他可归还项;最终停止结果汇总失败;ReturnFailed / 断线可观测 | session-lifecycle「故障处置」 | S11 |
| TC-SESS-05 | [ ] | Run 在途且采集在跑 | 宿主要「相机与 Run 一起停」 | 必须显式既停采集 又 RequestCancel;二者不隐含联动(对齐停止矩阵 / TC-CTL-04;host-integration「两端都停」) | session-lifecycle 停止矩阵;toolflow §7.4.3;host-integration §4 | S11 / S09c |
实现对拍状态(tip e46c042 · 按实 · 可勾选处)
下列 不是把 stub 标成完成。头上均有
NON-STABLE ABI / STUB。勾选含义:公开声明外形是否足以起草 fake 测试;≠ 契约验收通过。上表[ ]保持未勾。
| TC | 声明外形(include / smoke) | 实现对拍状态 | 缺口归属 |
|---|---|---|---|
| TC-SESS-01 | 停流态 + StopProgress(returns_complete 轮询 outstanding;无 OnReturnCompleted) | 骨架有;联合条件 未验收 | Bruno · Reed |
| TC-SESS-02 | external_retention + claims_device_returned() | 外形有;宿主 Share 持有时不得假称已归还 | Bruno |
| TC-SESS-03 | StopTimeout / WaitStop;超时留 Returning,cleanup_continues | 外形有;不假装 Stopped;pin 续清 未验收 | Bruno · Reed |
| TC-SESS-04 | StopFaults::return_failed_count;Returning 完成且 >0 → Faulted | 骨架有;断线/消费者故障注入 未验收 | Bruno · Reed |
| TC-SESS-05 | RequestStop 与 RunSession::RequestCancel 不自动联动 | 隔离外形正确;宿主矩阵未测实 | Bruno · Chase |
场景骨架 S11(完整文仍在 mvdocs examples-scenarios):
| S11 | TC-ACQ-* · TC-SESS-01…05;交叉 TC-CTL-04 | 采集接入 + 会话停流(fake):停流结束条件、外保留、超时续清、ReturnFailed/断线、两端都停须显式 | S11;camera-acquisition;session-lifecycle;Arden · R10 |
摘录状态:2026-10-21 Asia/Shanghai · tip e46c042。完整 test-contracts / toolflow / host-integration 不在本波。