cann/ops-sparse代码检查流程
代码检查流程 (8 步自查)【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparse在 2.x.1.A 算子初稿完成后、2.x.2 联调前、2.x.3 验收前、CP2.x 打点前必须按以下 8 步流程逐条自查。步骤 1文件级检查无二进制文件混入OAT.1所有源码文件含许可证头R9无公网地址G.OTH.05无重复文件CQ.08目录文件数在合理范围CQ.06快速检查命令# 检查二进制文件 find . \( -name *.o -o -name *.so -o -name *.a -o -name *.exe \) -type f # 检查无许可证头 grep -L Copyright (c) $(find . -name *.cpp -o -name *.h -o -name *.c) # 检查公网 URL常见域名 grep -rE (gitcode|gitee|github|google|huggingface)\.(com|cn) .步骤 2头文件检查无extern C包含头文件G.INC.05#include在using之前G.INC.08无 extern 函数/变量声明R10头文件大小在合理范围CQ.05快速检查命令# 检查 include 顺序using 应在 include 之后 for f in $(find . -name *.cpp -o -name *.h); do awk /^using / {uNR; next} /^#include / u {print FILENAME : NR : using before include; exit} $f done # 检查 extern C 中 #include grep -B5 ^#include $(find . -name *.cpp -o -name *.h) | grep -B5 extern C步骤 3函数级检查圈复杂度 ≤ 20R5嵌套深度 ≤ 5R6NBNC ≤ 50R7函数功能单一无重复逻辑CQ.07循环有安全退出条件G.CTL.03断言不用于运行时错误检测G.AST.03圈复杂度手动估算1基础 if/else if/for/while/case//|| 数量嵌套深度统计用 IDE 的 Show Indent Guide 或awk数{层级。步骤 4表达式与运算检查除法/取模前校验被除数非零R8整型表达式比较前已转型为更大类型G.EXP.26自增/自减表达式无重复引用G.EXP.33无sizeof(ptr)代替sizeof(array)G.ARR.03grep 快速扫描grep -nE [^a-zA-Z_](https://link.gitcode.com/i/3006ffd2cac812885fda0c3e3ed02093)[ ]*[a-zA-Z_] $(find . -name *.cpp) | grep -v _s步骤 5安全函数检查无不安全函数调用realloc/allocaG.FUU.09/10安全函数返回值已检查G.FUU.11destMax参数正确设置G.FUU.12未封装/重命名安全函数G.FUU.13/14使用华为安全函数库G.FUU.15快速检查命令# 检查是否使用了 realloc / alloca grep -rn \brealloc\b|\balloca\b $(find . -name *.cpp -o -name *.c)步骤 6内存与资源检查内存申请前校验大小合法性G.RES.02敏感信息使用后已清零G.MEM.04字符串缓冲区足够容纳数据和结束符G.STD.05不使用std::string存敏感信息G.STD.07步骤 7标准库与安全检查格式化字符串与参数类型匹配G.STD.13不使用外部可控数据启动进程G.STD.15不使用 exit/atexit/kill 等危险函数G.STD.16/17多线程场景使用线程安全版本G.STD.18不使用rand做安全用途G.OTH.03不使用不安全 IPSI 算法CIP.01快速检查命令grep -rEn \b(exit|_exit|abort|atexit|kill|TerminateProcess)\b $(find . -name *.cpp)步骤 8冗余与告警检查无未使用的 include/变量/函数CQ.09无死代码CQ.09无重复代码块CQ.07编译告警已修复而非抑制CQ.11OAT 自动化扫描推荐自动检查许可证头和文件类型sh scripts/oat_check.sh 变更文件列表检查结果记录每完成一处检查记录✅PASS无违规⚠️WARNING有建议级规则违反可记录后继续FAIL有严重/致命级规则违反必须先修复再继续所有 FAIL 项修复后重新执行步骤 1-8 整轮流程直至全 PASS。【免费下载链接】ops-sparse本项目是CANN提供的高性能稀疏矩阵计算的算子库专注于优化稀疏矩阵的计算效率。项目地址: https://gitcode.com/cann/ops-sparse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考