Files

36 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2026-07-22 15:05:52 +08:00
---
id: T-104
title: 完成 Chrome/Edge 双实例与异常退出 smoke
phase: 1
deps: [T-103]
status: DONE
created: 2026-07-22
owner: codex
---
## 需求与背景
核心进程能力必须在真实 Windows Chrome/Edge 上验证,fake runner 不能证明 Chromium 多进程、profile lock 和 Job Object 行为。
## 方案与边界
- 使用 `go test -tags smoke` 运行真实临时 profile smoke。
- 每个浏览器使用独立临时 user data dir 和 headless 模式,避免污染用户 profile。
- 验证启动、PID、registry 占用、重复启动、Chrome/Edge PID 隔离和 force stop 后退出。
- 优雅关闭由单元 fake 覆盖;真实 headless smoke 重点验证实例级强制回收。
## 验收要点
- `go test ./...`、`go vet ./...` 通过。
- `scripts/smoke-browser.ps1` 在 Chrome 和 Edge 均已安装时通过。
- 未安装的浏览器必须明确记录 skip,不能伪报成功。
- smoke 失败时不标记 DONE。
## 执行记录
- 状态:DONE
- 变更:新增 `smoke_windows_test.go` 和 `scripts/smoke-browser.ps1`,覆盖 Chrome/Edge 双实例、PID 隔离、registry 重复占用和 Job Object force stop。
- 验证:`go test ./...`、`go vet ./...`、`.\scripts\smoke-browser.ps1` 均通过;本机 Chrome 和 Edge 均安装并完成真实 headless smoke。
- 阻塞:
- 残余风险:headless 模式不创建可见 message window,外部 profile inspector 在本次 smoke 中未取得 lock/window 证据;需要后续可控 headful/offscreen smoke 单独验证。force stop 返回 `exit status 1`,已按被终止进程的预期语义记录。