package
Version:
v0.21.0
Opens a new window with list of versions in this module.
Published: Oct 21, 2026
License: MIT
Opens a new window with license information.
Imports: 7
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
Documentation
¶
Package singleflighttest 是 singleflight 语义的共享契约测试套件。
矩阵内存在两份等价实现(concurrency/singleflight 公开版与
pkg/internal/singleflight fork,fork 因 pkg 零依赖约束而保留)。本包把
关键语义固化为可复用的 Run,双方 CI 各自调用,任一侧语义漂移立刻双红。
先例:pkg/cache/cachetest。
Run 对 factory 构造出的 Flight 跑完整语义契约。factory 每个子测试调用一次。
契约清单:
- 同 key 并发 fn 只执行一次
- waiter 独立 ctx 取消不连坐(不拖垮 caller/其他 waiter)
- lead panic:waiter 得 error(非伪成功零值),caller 收到 panic,key 清理
- Forget 后可重入新 fn
- 不同 key 互不阻塞
- fn error 原样透传给全部调用方
Flight 是被测 singleflight 的最小能力面,与
concurrency/singleflight.Flight 和 pkg/internal/singleflight.Flight 对齐。
Source Files
¶
Click to show internal directories.
Click to hide internal directories.