Prhub

#54132 [Test] Fix mock_current_vllm_config missing kernel_config in test_dflash2

原始 PR 作者 mayuyuace 合并时间 2026-08-28 13:28 文件变更 1 提交数 1 评论 2 代码增减 +3 / -0

执行摘要

修复测试 mock 缺失 kernel_config 导致 AttributeError

PR body 指出:测试在 Intel CI 上失败,报错 AttributeError: 'types.SimpleNamespace' object has no attribute 'kernel_config'。原因是 UnquantizedLinearMethod.__init__ 现在需要读取 config.kernel_config.linear_backend,但测试的 mock 对象未包含该属性。

该 PR 为常规测试修复,值得快速合入。关注点在于测试 mock 的维护,建议后续使用工厂函数或统一 fixture 减少重复。

讨论亮点

review 由 claude[bot] 自动评论(来自 fork,未进行自动审查),维护者 jikunshang 批准并 CC 了 mgoin。无实质性讨论。

实现拆解

  1. 定位问题:在 tests/v1/spec_decode/test_dflash2.py 的 test_dflash2_model_decoder_layer_cls 测试中,构造 mock_current_vllm_config 时未包含 kernel_config 字段。
  2. 修改 mock:在 model_config 之后添加 kernel_config=SimpleNamespace(linear_backend="auto"),使得 UnquantizedLinearMethod 能够正确读取 backend 配置。
  3. 该修改仅涉及测试代码,不影响生产逻辑,确保 dflash2 测试在 Intel GPU 环境能够通过。
文件 模块 状态 重要度
tests/v1/spec_decode/test_dflash2.py 测试 modified 3.86

关键符号

test_dflash2_model_decoder_layer_cls

关键源码片段

tests/v1/spec_decode/test_dflash2.py test-coverage

测试中 mock 配置缺少 kernel_config 属性,导致 AttributeError。本 PR 在 mock 中添加了 kernel_config=SimpleNamespace(linear_backend="auto"),修复了测试失败问题。

# tests/v1/spec_decode/test_dflash2.py
# 构造 mock 配置时补充 kernel_config 字段
mock_current_vllm_config = SimpleNamespace(
    # ... 其他已有配置 ...
    model_config=SimpleNamespace(
        dtype=torch.float32,
        is_mm_prefix_lm=False,
    ),
    # 新增:UnquantizedLinearMethod.__init__ 需要读取 kernel_config.linear_backend
    kernel_config=SimpleNamespace(
        linear_backend="auto",
    ),
)

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:仅修改测试 mock 配置,不影响生产代码。但需注意 mock 配置是否与实际配置结构保持同步,未来若 config 结构变化,测试可能再次失效。

影响范围仅限于 tests/v1/spec_decode/test_dflash2.py 中的 dflash2 测试,修复了 Intel GPU CI 失败问题,对其他模块无影响。

测试 mock 配置同步风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论