4.3 KiB
4.3 KiB
红线证据:FAV subscriber audit + shadow reconcile(无 live)
一、 测试背景 (Background)
W6 shadow 已合 dev。本轮只做 subscriber 审计 + shadow 复验 + 观察窗启动前置登记。禁止整支 merge feature/final-artifact-vault;不启用 live Register(fav);不翻转 FAV_DEGRADED_READ。
二、 测试目标 (Test Objectives)
ObserveShadow:WouldStage/WouldPublish/DegradedReadUsed恒 falseHandleLease默认 disabled;Enabled=true仍 fail-closed 至 cutover 审批Registry.Register(fav)/AssertLiveConsumers/ claim 路径硬拒fav- compose 默认
FAV_DEGRADED_READ=false、FAV_PUBLISHER_ENABLED=false - 登记观察窗启动前置;本轮不开始计时
三、 测试方案与环境 (Test Plan & Environment)
| 项 | 值 |
|---|---|
| OS | Darwin 25.6.0 arm64 |
| Go | go1.27.1 |
| 分支 | feature/redline-evidence-2026-09-22 |
| 被测 SHA | 364ed7f1a3f0393ef77ec4623a9518116ed2cb87 |
| 实测时间 | 2026-09-22T13:25:12Z |
| 证据 | .doc/test-reports/assets/2026-09-22-redline-evidence/ |
四、 预期结果 (Expected Results)
- shadow 可观测且无写回执
- Register(fav) / live consumers 仍拒绝
- vault status:
consumer_mode=off/ live 未放量 - 观察窗前置已登记但未起算
五、 实际测试结果与判定 (Actual Results & Evaluation)
5.1 Subscriber shadow 单测
- 测试输入 (Input):
go test -count=1 -short ./internal/app/fav/ ./internal/events/ -run 'Fav|Register|ObserveShadow|Cutover|Disabled|Vault' -v - 实际输出 (Actual Output):
TestFavSubscriberDefaultsDisabledPASSTestFavSubscriberStillDisabledWhenFlagOnWithoutRegistryApprovalPASSTestFavSubscriberShadowComputesIntendedOutcomeWithoutWritesPASS- cutover / claim disabled / manifest 含 disabled FAV PASS
- 见
fav-shadow.txt
- 评价判定 (Evaluation / Verdict):PASS
- 性能与耗时 (Duration & Latency):~0.3s
5.2 Registry / vault 硬门
- 测试输入 (Input):
go test -count=1 -short ./internal/events/ -run 'Register|AssertLive|LiveConsumers|Manifest' -v;go test -count=1 -short ./internal/server/ -run 'VaultDefaults|VaultStatus' -v - 实际输出 (Actual Output):
AssertLiveConsumersRejectsFAV/LiveConsumersOmitsFAV/VaultDefaultsStayDisabled/VaultStatusReportsOffPASS。见fav-register-gate.txt/fav-vault-status.txt - 评价判定 (Evaluation / Verdict):PASS(未启用 live Register)
- 性能与耗时 (Duration & Latency):~0.7s
5.3 Compose 默认(静态)
- 测试输入 (Input):
rg FAV_DEGRADED_READ|FAV_PUBLISHER_ENABLED docker-compose.{dev,test,main}.yml - 实际输出 (Actual Output):dev/test
${...:-false};main 硬编码"false"。见fav-compose-defaults.txt - 评价判定 (Evaluation / Verdict):PASS(默认 false;本轮未改 compose)
- 性能与耗时 (Duration & Latency):N/A
5.4 观察窗启动前置(登记,未计时)
须同时满足后才可起算(任一缺失不得起算):
- 用户显式授权
favdurable consumer cutover(非整支 merge) - 解除
events硬门(Register(fav)/SetMode/ claim)——本批禁止改 - 顺序:
staging → artifact → publication;每级shadow → drain → live - 每级 ≥7 天或 ≥N 终态样本(取更严);崩溃/重启幂等证据
FAV_DEGRADED_READ全程 false- 三环境 compose 与 sysadmin 目录一致;无旁路注册
- mutex
events+ CURRENT 集成槽位已认领 - 回滚预案:失败立即回
shadow/off
- 评价判定 (Evaluation / Verdict):PASS(前置已登记);观察窗 未开始
六、 自动化测试套件汇总 (Test Suite Execution)
ok internal/app/fav FavSubscriber* PASS
ok internal/events AssertLive/LiveConsumers/Manifest/Cutover PASS
ok internal/server VaultDefaults/VaultStatus PASS
compose defaults FAV_* = false
live Register(fav) NOT ENABLED
observation window NOT STARTED
七、 测试结论与后续优化建议 (Conclusion & Next Steps)
Shadow 复验 PASS;硬门仍 fail-closed。FEATURE-MATRIX FAV 保持 partial。下一步仅在用户授权 cutover 后按固定顺序开观察窗,且全程保持 FAV_DEGRADED_READ=false。