已合并
[test] Add torch.autograd.profiler_util.StringTable.values Api Coverage #42025
[test] Add torch.autograd.profiler_util.StringTable.values Api Coverage #42025
已合并
lihaokun-2026创建于 7月18日
lihaokun-2026
lihaokun-2026
7月18日

【合入来源】

#2928

【修改方案】

  1. API 功能说明:

    • torch.autograd.profiler_util.StringTable.valuesStringTable 继承自 defaultdictvalues() 返回当前 string table 中所有 value 的动态视图,用于获取 profiler 字符串映射表中的值集合。
  2. 上游用例检查情况:

    检索 PyTorch / Torch-NPU 现有测试后,未找到面向 torch.autograd.profiler_util.StringTable.values 的独立、直接、最小验证用例,因此按任务要求新增 NPU API 验证用例。

  3. 新增用例文件:

    • test_profiler_util_string_table_values.py
  4. 新增用例覆盖场景:

    • StringTable.values() 在空表场景下返回空 ValuesView
    • 显式写入 key/value 后,values() 返回全部 value
    • 访问缺省 key 触发 StringTable.__missing__ 后,values() 可读取自动写入的 value
    • 单字符 key 保持原值,不触发 demangle 变更
    • values() 返回动态视图,后续新增元素可被已有 view 感知
    • torch_npu 环境下验证 privateuse1 backend 为 npu
  5. 新增文件头部已按要求补充注释,说明该文件验证的 API 功能。

【资料变更】

不涉及。未修改产品资料、接口说明文档或用户可见文档。

【接口变更】

不涉及。未修改跨代码仓接口,也未修改用户可见接口行为。

【功能验证】

测试环境:

torch: 2.7.1+cpu
torch_npu: 2.7.1

测试方法:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
TORCH_DEVICE_BACKEND_AUTOLOAD=1 python3 test/test_profiler_util_string_table_values.py -v

测试结果:
image.png

【CheckList】

PR提交人对以下CheckList自检项进行全量自检,自检通过或不涉及,均修改 [ ] 为 [x]

likedislike
Pull Request已成功合入, 合并人@ascend-robot
(感谢 lihaokun-2026 的贡献)
lihaokun-2026lihaokun-2026
7月18日 创建了 pull request,commit 531eff44
lihaokun-2026lihaokun-2026
7月18日 关联了issue:【社区任务】7月社区任务第二期-Ascend for PyTorch API 一致性开发(68)
atomgit-bot
atomgit-bot
7月18日 评论:

变更摘要

本 PR 新增了 torch.autograd.profiler_util.StringTable.values 接口的独立测试用例文件,旨在覆盖该 API 在空表、显式写入、__missing__ 自动写入、短字符串 key、动态视图更新以及 NPU 环境下的功能正确性验证。该测试文件在 torch_npu 环境中运行,确认 StringTable.values() 返回的 ValuesView 行为与预期一致。

主要改动

  • 新增测试文件 test/test_profiler_util_string_table_values.py:创建独立的测试模块,包含 TestStringTableValues 类,对 StringTable.values() 进行最小化功能验证。
  • 空表场景覆盖test_values_empty_string_table 验证空 StringTable 调用 values() 返回空 ValuesView 实例。
  • 显式写入与 __missing__ 自动写入覆盖test_values_contains_explicit_items 验证显式添加的 key/value 可通过 values() 获取;test_values_reflects_missing_key_insertion 验证访问缺失 key 触发 __missing__ 后,自动生成的 value 出现在 values() 结果中。
  • 短字符串 key 与动态视图覆盖test_values_keeps_short_key_unchanged 验证单字符 key 不触发 demangle 变更;test_values_view_updates_after_mutation 验证 values() 返回动态视图,后续新增元素可被已有视图感知。
  • NPU 环境验证test_values_runs_in_torch_npu_environment 确认当前 privateuse1 backend 名称为 "npu",保证测试在正确的硬件环境下执行。
likedislike
atomgit-bot
atomgit-bot
7月18日 评论:

代码审查

审查总结

对变更文件 test/test_profiler_util_string_table_values.py 的审查已完成,共发现 1 个 P3 级问题

审查结果

文件 审查结论
test/test_profiler_util_string_table_values.py 发现 1 个 P3 问题

发现汇总

  • P3 (1)test_values_runs_in_torch_npu_environment 方法名暗示验证 StringTable.values() 在 NPU 环境运行,但方法体内仅检查后端名称,未实际调用 values(),构成测试名与实现不一致的覆盖盲区。

整体评估

该变更为新增的 API 覆盖测试文件,测试用例覆盖了空表、显式写入、__missing__ 自动写入、短字符串保持、动态视图更新等核心场景,逻辑正确,结构清晰。唯一的问题是最后一个测试方法未实际触及被测 API,风险较低(P3),不影响合入但建议修正。

⚠️ 已识别出整体风险,但无法提取行内评论,请参考整体评估。

likedislike
此处折叠了113条消息 查看更多
梁松伟
梁松伟成员
18 天前 评论:

/approve

likedislike
ascend-robotascend-robot成员
18 天前 添加了label:approvedlgtm
ascend-robotascend-robot成员
18 天前 合入了pull request
ascend-robot
ascend-robot成员
18 天前 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
ascend-robot
ascend-robot成员
18 天前 评论:
流水线 pytorch_gitcode_PR_multiVersion#13549 [ commitID:735b58e3 ] 已完成
likedislike