cache-gc

20260916-181749 轮 · 看它的历史
=== 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