首页 文章

BULLSEYE:没有覆盖linux中的共享库

提问于
浏览
1

尝试使用靶心进行代码覆盖,以下是要求 -

要求 - 项目在linux中 - 1.在主机系统中编译项目 - 它生成多个共享库说abc.so def.so和xyz.so

  • 编译测试应用程序来验证这些生成的库(测试套件是一个单独的图像)

  • 在不同的目标设备上复制所有共享库和测试应用程序 .

  • 现在在目标设备上执行测试应用程序以验证不同共享库的功能

现在要求检查这个“测试应用程序”提供的覆盖范围 .

到目前为止已尝试过的 -

  • 在linux主机上安装Bullseye(用于编译项目)1.a . 设置我的环境PATH = / BullseyecoveragePath / bin @开始路径

  • 项目编译make文件被修改为使用Bullseye包附带的编译器,也使用covc

CC = / BullseyecoveragePath / bin / covc /BullseyecoveragePath/bin/gcc-4.6 CXX = / BullseyecoveragePath / bin / covc / BullseyecoveragePath / bin / g -4.6

  • export COVFILE = / data / test.cov

  • export COVDIR = / Project / src / base

  • cov01 --on

  • 项目编译成功(在编译时显示靶心 Banner )*在次要libcov32.a库调整之后

编译完成后也会生成

  • test.cov

问题 -

  • 尝试在设备1.a上复制编译库abc.so def.so和xyz.so以及"test application" . 复制test.cov - > /目标机器的数据1.b. export COVFILE = / data / test.cov

  • Ran "test application" - >执行成功

  • 将test.cov复制回主机以查看覆盖范围 . ???但test.cov文件没有变化???

有人可以帮助我缺少什么或者需要做些什么才能使其工作 -

  • 共享图书馆

  • 在两个不同的系统之间(在一个系统上编译,在第二个系统上运行)

谢谢

1 回答

  • 1

    在我看来,你正在做正确的步骤,这是生成覆盖率报告所必需的,根据bullseye documentation - 使用共享库在过程中没有太大的区别 .

    文档中提到了一些可以检查的有趣内容,例如:

    由于运行时活动,覆盖文件大小不会增加 .

    也许似乎covfile的大小相同,但它实际上包含覆盖信息?您可以尝试使用 CoverageBrowser 程序查看它 .

相关问题