# PR #25450 完整报告

- 仓库：`sgl-project/sglang`
- 标题：Fix invalid suite name in test_multi_detokenizer
- 合并时间：2026-05-16 09:42
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/25450

---

# 执行摘要

- 一句话：修复测试集名称未同步导致 CI 崩溃
- 推荐动作：PR 内容简单，变更明确，可以直接合并。建议团队关注跨 PR 的命名同步问题，尤其在密集合并窗口期间，考虑引入自动化检查来校验测试集名称一致性。

# 功能与动机

自 PR #25420 合并后，所有 cherry-pick 到 main 的 PR 在 stage-a 阶段都因 ValueError: Tests registered to invalid suites 失败，validate_all_suites 拒绝该测试注册，导致 base-a CPU / 1-gpu-small 等任务在测试开始前就退出。根本原因是 #24944 引入的 test_multi_detokenizer.py 使用了旧的 stage-b-test-1-gpu-large 名称，而 #25420 的重命名未覆盖该文件。

# 实现拆解

1. 修改 test/registered/tokenizer/test_multi_detokenizer.py 第 20 行
 - 将 register_cuda_ci 的 suite 参数从 "stage-b-test-1-gpu-large" 改为 "base-b-test-1-gpu-large"
 - 与 #25420 中其他 CUDA 测试集的命名保持一致
2. 注意 AMD 测试集的 suite 名 "stage-b-test-1-gpu-small-amd" 保持不变，因为 #25420 仅重命名了 CUDA 测试集，AMD 测试集仍沿用 stage-* 前缀（符合 test/run_suite.py 中的规则）

关键文件：
- `test/registered/tokenizer/test_multi_detokenizer.py`（模块 测试注册；类别 test；类型 test-coverage）: 唯一变更文件，修复了因 #25420 未覆盖导致的测试集名称不匹配问题。将 register_cuda_ci 的 suite 从 "stage-b-test-1-gpu-large" 更正为 "base-b-test-1-gpu-large"，同时保留 AMD 行的旧前缀。

关键符号：未识别


# 评论区精华

PR 没有 review 评论，但 PR body 详细分析了问题的引入过程：
- #24944 在 2026-05-15 17:26 添加了 test_multi_detokenizer.py（stage-* 名称）
- #25420 在一小时后（18:26）重命名了所有 CUDA 测试集为 base-*，但 diff 未包含 #24944 的新文件
- 两者合并后，该文件成为唯一残留的 stage-* CUDA 注册，导致 CI 全局失败。

- 暂无高价值评论线程

# 风险与影响

- 风险：风险极低。仅修改一行测试注册的字符串参数，不影响业务逻辑或测试行为。但需注意：
 - 如果未来再次发生类似竞态条件（PR 合并时间差），可能再次遗漏同步。
 - AMD 测试集名称仍为 stage-*，如果后续重命名 AMD 测试集，需确保覆盖所有文件。
 - 影响：影响范围：仅影响 CI 流程。修复后所有包含此文件的 PR 将能正常通过测试任务，不再因 suite 名称无效而提前退出。用户无感知，系统运行不受影响。
 - 风险标记：无风险

# 关联脉络

- PR #25420 [CI] Rename basic CI stage-a/b/c -> base-a/b/c: 本 PR 修复了 #25420 重命名操作中遗漏的文件。
- PR #24944 Add multi-detokenizer support: #24944 引入了 test_multi_detokenizer.py，使用了旧的 stage-* 测试集名称，导致与 #25420 合并后出现冲突。