# PR #21385 完整报告

- 仓库：`sgl-project/sglang`
- 标题：[Diffusion] Refactor diffusion JIT kernel test layout and narrow CI triggers
- 合并时间：2026-03-26 15:02
- 原文链接：http://prhub.com.cn/sgl-project/sglang/pull/21385

---

# 执行摘要
本次 PR 重构了扩散 JIT 内核的测试布局，将其移至专用子文件夹，并收窄 CI 触发条件，以提升代码组织性和 CI 效率，属于中等重要性的基础设施优化。

# 功能与动机
动机源于改善扩散相关 JIT 内核测试和基准测试的组织结构，并通过优化 CI 触发逻辑减少不必要的测试运行，具体表述为“将扩散相关的 JIT 内核测试和基准测试移至专用文件夹并更新测试发现以扫描嵌套路径，收窄扩散 CI 触发使其仅当相关文件变更时运行”。这旨在提高开发流程效率和代码可维护性。

# 实现拆解
关键变更点按模块梳理：
- **测试文件重组**：将多个测试和基准测试文件（如 `test_fused_norm_scale_shift.py`）重命名至 `python/sglang/jit_kernel/tests/diffusion/` 和 `benchmark/diffusion/` 目录。
- **CI 工作流调整**：更新 `.github/workflows/pr-test.yml` 等文件，添加新路径并修改触发逻辑，确保仅扩散相关变更触发 CI。
- **测试发现逻辑更新**：在 `test/run_suite.py` 的 `run_a_suite` 函数中，将 glob 调用改为递归扫描，支持嵌套子文件夹。
- **文档同步**：更新 `.claude/skills/write-sglang-test/SKILL.md` 和 `test/README.md`，明确测试放置规则和目录结构。

# 评论区精华
review 讨论中仅有一条有价值交锋：gemini-code-assist[bot] 建议在 `test/run_suite.py` 中使用循环减少代码重复，但未见作者回应或采纳，PR 已合并，可能设计权衡倾向于保持现状。引用原话：“To reduce code duplication, you could use a loop to handle both the 'tests' and 'benchmark' directories.”

# 风险与影响
**风险**：
- 测试发现逻辑变更（递归 glob）可能因模式错误导致文件遗漏，影响测试覆盖率。
- CI 触发范围收窄可能过度，忽略相关变更，引入回归风险。
- 文档更新不完整可能误导开发者，造成测试放置错误。

**影响**：
- 对用户：开发者需适应新布局，短期有学习成本；CI 运行更高效，长期受益。
- 对系统：测试发现更灵活，支持未来扩展；CI 资源使用优化。
- 对团队：提升代码可维护性，减少 CI 噪声，促进高效协作。

# 关联脉络
与近期 PR 关联显示扩散和 JIT 内核模块的演进趋势：
- PR 21387 优化扩散 Triton 内核性能，与本 PR 的测试布局更新相辅相成。
- PR 21246 扩展 JIT 内核 CI 测试，与本 PR 的 CI 触发调整共同完善测试基础设施。
- 整体上，这些 PR 反映团队在强化扩散功能和支持多硬件后端方面的持续投入。