我正在为设备驱动程序进行单元测试,因为我需要使用gcov和lcov工具来生成报告。我在本机中编译了我的代码,并且.gcno文件生成完美。然后我在一个文件中执行输出文件基于arm的板和gcda文件也正确生成。然后我将这些文件带到我的本机并生成.gcov文件。
但是当我使用lcov文件时,它显示的错误如“/ usr / src / geninfo line no 2414中的负长度”。
答案 0 :(得分:0)
一旦您能够正确生成.gcda和.gcno文件,则需要lcov工具来捕获代码覆盖率。在这里,您应该交叉编译 lcov 工具,并将其添加到文件系统中。
我正在从事类似的任务,我试图捕获基于ARMv7的系统的内容。我已经将yocto用于构建框架。在yocto中,meta-oe层提供了lcov的支持。您可以通过将以下行添加到配置文件中,将其添加到conf / local.conf文件中。
CORE_IMAGE_EXTRA_INSTALL + =“ lcov”
在完成所有构建步骤之后,您将把lcov工具安装到目标板的 / bin 目录中。请参阅lcov man page
您可以使用以下命令来生成coverage文件。
lcov --capture --directory <path-to-your-generated-files-dir> --gcov-tool /usr/bin/arm-linux-gnueabi-gcov --output-file <file_name>
以上命令将生成一个文件,如果目标板没有足够的功能,则可以将生成的文件复制到构建系统中。
在构建系统中, 您可以执行以下命令来生成具有确切覆盖率详细信息的HTML输出,
genhtml <path_to_generated_file> --output-directory <out_dir>
有关GCOV和LCOV集成的更多详细信息,请参见下面的链接。 1. How to use GCOV & LCOV