美文网首页
code coverage tools

code coverage tools

作者: 波雅_Z | 来源:发表于2021-08-31 14:06 被阅读0次

    1. 环境准备

    • 该脚本适用于软件的编译环境与测试环境不同的情况
    • 编译环境下,安装lcov和gcov
    • 测试环境下,准备好测试需要的资源

    2. 编译

    • 需要测试的代码,makefile中添加flag,-ftest-coverage、-fprofile-arcs
      • CFLAGS_append = "-ftest-coverage -fprofile-arcs"
      • LDFLAGS += "-O0 -ftest-coverage -fprofile-arcs"
    • 编译生成软件
    • 查看是否有 .gcno 和 .o 文件生成,并确认路径

    3. 测试

    • 连接设备,push coverage-test.sh 到设备测试目录下(adb push coverage-test.sh /data/test/)
    • 编辑一个文本文档用来放置要测试的命令行,格式如test.txt(adb push test.txt /data/test/)
    • 执行 coverage-test.sh (adb shell;cd /data/test/;coverage-test.sh test.txt ./)
    • 结束后会生成lcov的文件夹,检查gcda文件是否正常生成

    4. 生成报告

    • 回到编译环境,新建一个目录用来存放coverage-collect.sh(mkdir /coveragetest)
    • 将生成的lcov文件夹拿到本地(adb pull /data/test/lcov/coveragetest/)
    • 执行coverage-collect.sh, 生成result(cd /coveragetest; coverage-collect.sh <.gcno files path>)

    Tips

    • 请确保运行coverage-collect.sh的环境下,gcov的版本与编译环境下的gcov版本相同,或者是使用coverage-collect.sh <> -t XXX 指定对应的gcov工具
    • 请确保运行coverage-collect.sh的环境下存在软件对应的源代码,且路径与编译环境下的代码路径相同

    相关文章

      网友评论

          本文标题:code coverage tools

          本文链接:https://www.haomeiwen.com/subject/bndziltx.html