2.2 KiB
2.2 KiB
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