执行摘要
- 一句话:修复测试集名称未同步导致 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 的重命名未覆盖该文件。
实现拆解
- 修改 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 测试集的命名保持一致
- 注意 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 详细分析了问题的引入过程:
风险与影响
- 风险:风险极低。仅修改一行测试注册的字符串参数,不影响业务逻辑或测试行为。但需注意:
- 如果未来再次发生类似竞态条件(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 合并后出现冲突。
参与讨论