Files
Agent-System/.doc/test-reports/2026-09-16-wave1-iam-fail-closed-test-report.md

2.2 KiB
Raw Permalink Blame History

Wave 1 PU3 IAM store fail-closed 测试报告

一、 测试背景 (Background)

auth.NewStores 在 pool/IAM 表未就绪时静默回退 MemoryStore。Wave 0 只读核验确认当前部署未触发,但代码旁路仍在。本波按 PU3 收口为仅 dev|test + ALLOW_IN_MEMORY 双门。

二、 测试目标 (Test Objectives)

  • main/prod/空 env/未知 env/缺 opt-in 时 fail-closed
  • 仅 dev/test + AllowInMemory 允许 MemoryStore
  • 相关 short 测试全绿;授权 happy path 不因测试夹具调整而破坏

三、 测试方案与环境 (Test Plan & Environment)

  • 负例:internal/auth/store_factory_test.go
  • Assemble 负例:TestAssemble_FailClosed_MainCannotUseMemoryIAM
  • 回归:go test -short ./internal/auth/ ./internal/app/ ./internal/bizdev/ ./internal/server/
  • 测试夹具:MustNewService 在启用内存时默认 Env=test;严格鉴权用例启动后关闭 AllowInMemory

四、 预期结果 (Expected Results)

  • FailClosed 用例全部 error;dev/test opt-in 返回 MemoryStore
  • main + AllowInMemory 不得 Assemble 成功
  • short 包测试 PASS

五、 实际测试结果与判定 (Actual Results & Evaluation)

用例 1:NewStores 负例与 opt-in

  • 输入:go test -count=1 ./internal/auth/ -run TestNewStores_
  • 输出:ok
  • 判定:PASS

用例 2:Assemble main fail-closed

  • 输入:go test -short ./internal/server/ -run TestAssemble_FailClosed_MainCannotUseMemoryIAM
  • 输出:PASS
  • 判定:PASS

用例 3:short 回归

  • 输入:go test -short -count=1 ./internal/auth/ ./internal/app/ ./internal/bizdev/ ./internal/server/
  • 输出:四包均 ok(见 assets)
  • 判定:PASS
  • 耗时:~12s

六、 自动化测试套件汇总 (Test Suite Execution)

命令 结果
go test -short -count=1 ./internal/auth/ ./internal/app/ ./internal/bizdev/ ./internal/server/ PASS

产物:.doc/test-reports/assets/2026-09-16-wave1-iam-fail-closed/

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

  • MemoryStore 旁路已 fail-closed;IAM 行仍可 partial(全路由 inventory / session 中断负例未在本波做完)
  • 下一步:Wave 2 真实 PI 补证;可选继续 PU3 inventory