cache-gc
=== A 核心:cache:gc --all ===
PASS A0a 夹具:3 个过期键已落盘
PASS A0b 夹具:3 个未过期键已落盘
PASS A0c 夹具:2 个永久键已落盘
PASS A0d 夹具:那 3 个已被判定为过期
PASS A1 过期键被删干净
PASS A2 未过期键一个不少
PASS A3 永久键(TTL=0)一个不少
PASS A4 未过期键的值读得回来
PASS A5 命令报告删除数 >= 3
=== B 命令输出 ===
PASS B1 输出含绝对路径(运维分辨跑对没有的唯一观察点)
PASS B2 输出含扫描计数
PASS B3 输出提醒了"在 cron 容器里跑没有意义"
PASS B4 看不懂的 --max 被拒(不静默回落到默认值)
=== C dry-run ===
PASS C0 前置:dry-run 的 2 个夹具已落盘
PASS C1 dry-run 报出了 >= 2 个过期
PASS C2 dry-run 一个都没删
=== D 概率钩子(cacheCorp 写分支) ===
PASS D0 前置:3 个过期夹具已落盘
PASS D1 300 次写之后过期夹具归零(= 钩子在 cacheCorp 上真的挂着)
=== E 守卫 ===
PASS E0 前置:前两次限流判定放行(链路真的跑了)
PASS E1a 前置:GC 前计数 = 2
PASS E1b GC 之后限流计数没变(没被当墓碑清掉)
PASS E1c 第 3 次仍在配额内
PASS E1d 第 4 次被限流拒绝(限流仍然生效)
PASS E2a 首页 HTTP 200
PASS E2b 首页渲染出了 <title>
=== F 边界 ===
PASS F0 前置:异物文件已放好
PASS F1 头部对不上的文件没被删
PASS F2 --max=3 时扫描数 <= 3
=== 清理 ===
PASS 清理:夹具键全部清干净
PASS=29 FAIL=0