【发布时间】:2013-12-07 13:09:59
【问题描述】:
我将 gcov 用于生成子进程的 c++ 测试可执行文件。子进程包含一个共享对象库。测试进程、子进程和共享对象库都编译在不同的目录中。我正在使用 -fprofile-arcs -ftest-coverage 标志进行编译和链接。编译时,我得到子进程和共享库的 .gcno 文件。但是当我运行可执行文件时,我只能获得父进程的覆盖率输出。
我的问题是,是否有任何特殊步骤可以通过其共享库来覆盖此子进程?
gcc 帮助论坛问题here(关于 gcov 与共享对象库)解释说共享库必须构建在与您运行可执行文件的目录相同的目录中。
这是否意味着为了获得测试覆盖率,我必须在同一个目录中编译每个组件(父测试进程、子进程和共享对象库)?
【问题讨论】:
标签: c++ testing code-coverage gcov