CANN/cannbot-skills pytest约束规范

发布时间:2026/7/4 9:45:31
CANN/cannbot-skills pytest约束规范 约束【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills铁律NO PYTEST FILE WITHOUT VERIFYING IT CAN BE COLLECTED AND EXECUTED NO INLINE PARAMS — PARAMS 必须通过 json.load 从 S5_mapped_cases_low.json 运行时读取 禁止将参数组合硬编码/内嵌到 pytest 文件中。修改 S5_mapped_cases_low.json 后不应需要重新生成 pytest 文件。 NO MODIFIED TOLERANCE — 精度标准rtol/atol禁止修改这是质量保证的最后一道门槛。 精度不达标的 case 通过 XFAIL 记录偏差信息保留可追溯性不阻塞门禁交付。验证流程生成conftest.pyS6_test_{op_name}.py后按以下顺序验证python -m py_compile conftest.py S6_test_{op_name}.py— 语法检查。失败 文件有语法错误必须修复。pytest --cases-fileS5_mapped_cases_low.json --collect-only S6_test_{op_name}.py— 收集检查--cases-file可识别说明 conftest.py 生效。失败时区分原因SyntaxError / NameError→ 文件有问题修复后重试ModuleNotFoundErrortorch_npu 等→ 环境缺依赖不是文件问题可以继续其他→ 具体分析ASCEND_GLOBAL_LOG_LEVEL1 pytest S6_test_{op_name}.py --cases-fileS5_mapped_cases_low.json -q --tbline—执行检查 日志采集。目标所有用例都能合法运行。判定规则合法PASSED / XFAIL / SKIPPED非法 — 必须修复FAILED任何类型的失败包括 assertionERRORimport 失败、API 不存在、kernel crash 等RuntimeErrorAPI 签名错误、shape 不匹配、Tiling 失败等AttributeErrorAPI 名称错误、模块缺少属性等假 PASSNPU 不可用时静默通过未做任何实质验证精度不达标的 AssertionError必须用try/except包裹assert_close捕获后调用pytest.xfail(reason...)使结果为 XFAIL 而非 FAILED修复后必须重新运行确认直到 0 个 FAILED / ERROR / RuntimeError / AttributeError复制 plog 并生成 tilingkey 覆盖率报告mkdir -p tests/whitebox/tilingkey_logs/ PLOG$(ls -t ~/ascend/log/debug/plog/plog-*.log | head -1) cp $PLOG tests/whitebox/tilingkey_logs/{op_name}_full.log python {skill_scripts}/compute_tilingkey_coverage.py \ --log-path tests/whitebox/tilingkey_logs/{op_name}_full.log \ --param-def tests/whitebox/S2P2_param_def.json \ --output-dir tests/whitebox/输出S6_tilingkey_coverage.json含全局与 per_group 覆盖率。覆盖率报告为信息性产出不阻塞门禁交付。注意部分算子存在 tiling 侧SetTilingKey的值与 kernel 侧TILING_KEY_IS的值不一致的情况如 bitmask 映射源码 key0 在 plog 中打印为tilingKey: 1。覆盖率分析时需注意两侧 key 的对应关系必要时手动核对源码确认映射规则。严格禁止禁止手动编写参数组合——必须使用 S5_mapped_cases_low.json 中的全部内容禁止将 JSON 内容内嵌为 PARAMS 列表——必须使用 json.load 从 S5_mapped_cases_low.json 运行时读取禁止手动推导 tensor shape/dtype——必须直接从case[tensors]读取禁止假设 NPU 环境一定可用——使用pytest.importorskip(torch_npu)守护禁止在测试函数中硬编码具体参数值禁止声称文件已生成但没跑pytest --collect-only验证禁止声称文件已通过验证但没跑pytest S6_test_{op_name}.py实际执行验证禁止因输出模式不同而跳过用例——全量解包返回值按模式验证对应输出禁止在 prompt 或代码中硬编码算子特定的 tensor 名称、属性名称或输出名称【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考