test(zcode): 把门禁判决实验收进仓库(test/manual/gate-e2e.py)

它是「yolo + 自有工具面 + 我们自己的门禁」这个姿态**唯一**的决定性验证:
批了→命令真执行(比对文件内容,不只看回信);拒了→命令真没执行(文件不存在)
**且回信把成因说成「人拒绝」而不是「超时」**;同会话第三次调用仍产生新请求
并在获批后执行(幂等键按调用唯一)。之前只放在 /root 下,会随环境丢弃。

顺手修两处会骗人的东西:

1. **不要用 `python3 run.py | tee log` 再取 `$?`** —— 那是 tee 的退出码(恒 0)。
   实测踩过:脚本自己打印 5/6(有失败),后台任务通知却报 exit-code 0,
   日志里那句 `EXIT=0` 完全是噪声。现在脚本把**自己的** exit_code 写进证据文件,
   README 也改成 `set -o pipefail` 的调用方式。
   (同源问题第三次:PIPESTATUS 在 dash 下报错、`go build | head` 假绿、这次是 tee。)
2. **备注文字不再显示在通过项旁边** —— 通过的判据曾挂着「很可能又被当成重复请求
   丢弃了」这种失败提示,会把「全绿」读成「有问题」。

已从仓库路径连跑三次 13/13(不同标记),确认收进仓库后仍可用。
This commit is contained in:
2026-09-12 19:11:58 +08:00
parent a00cbf36fc
commit d015d3694c
3 changed files with 356 additions and 1 deletions

View File

@ -245,7 +245,9 @@ node test/manual/permission-e2e.mjs
node test/manual/driver-e2e.mjs
# 门禁端到端(真模型、真网关、真邮件):批了→真执行;拒了→真不执行
python3 /root/e2e-zcode-gate/run.py
# ★ 不要写成 `python3 gate-e2e.py | tee log` 再取 `$?` —— 那是 tee 的退出码(恒 0),
# 失败会被吃掉。实测踩过:脚本自己打印 5/6(有失败),后台任务却报 exit-code 0。
bash -c 'set -o pipefail; python3 test/manual/gate-e2e.py'
```
新增的两组测试把安全性质钉住(共 34 条):