QAC的CLI 转载文章

2.静态分析执行

为了方便后续将鸿蒙的静态分析过程部署到持续集成平台上,本文以命令行的方式进行静态分析操作的演示。具体步骤如下:

  • 创建QAC工程,命令如下:

qacli admin --qaf-project-config --qaf-project . --cct "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/cct/GNU_GCC-riscv32-unknown-elf-gcc_7.3.0-riscv32-unknown-elf-C-c99.cct" --acf "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/acf/HMOS.acf" --rcf "/home/zhou/.config/Perforce/Helix-QAC-2021.1/config/rcf/HMOS.rcf"

为了更全面地了解鸿蒙系统的代码质量,本文在QAC工程的分析配置文件HMOS.acf中添加了MISRA C 2012合规模块、CERT C合规模块及CWE C合规模块。

  • MISRA C 2012:为开发安全关键系统提供编码标准,广泛应用于汽车软件开发。

  • CERT :信息安全编码标准,能确保您的软件免受潜在的软件安全漏洞的侵害。

  • CWE C:常见弱点枚举(CWE)列表标识了软件和硬件中的软件安全弱点。

  • 过滤鸿蒙中包含的第三方源码,命令如下:

qacli pprops -P . --sync-setting FILE_FILTER  --set "/home/zhou/Downloads/openHarmony/third_party"

通过该命令,我们可以将鸿蒙工程中包含的第三方源码从QAC工程中过滤出去,这样我们可以更好地通过QAC的分析结果衡量鸿蒙源码的代码质量。

  • 将wifiiot_hispark_pegasus工程源码加载到QAC工程中,具体命令如下:

qacli sync -P . -t MONITOR "cd /home/zhou/Downloads/openHarmony&&hb clean&&hb build"

该命令是通过监测wifiiot_hispark_pegasus工程的编译过程,自动将编译过程中调用的源文件和头文件添加到QAC工程中。

  • 执行QAC分析,具体命令如下:

qacli analyze -P . -cf

  • 生成合规报告:

qacli report -P . -t RCR

  • 将分析结果上传到QAC的网页端,方便查看,命令如下:

qacli upload -P . --qav-upload --upload-project HMOS --snapshot-name v1.0 --upload-source ALL -U https://192.168.9.126:8081/ --username admin --password admin

静态分析结果分析

模块wifiiot_hispark_pegasus的总体合规情况如下:

QAC共计报出107618条诊断消息,共计违反规则290264次,违反的规则数目为302条(包含MISRA C、CERT C和CWE C),符合的规则有216条,由于模块的文件合规率高达94.19%,但是工程合规率却只有41.70%,所以可以看出违反规则的情况集中在少部分源文件中。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值