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

时间:2014-05-07 13:13:13

标签: linux shared-libraries code-coverage bullseye

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

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

  1. 编译测试应用程序以验证这些生成的库(测试套件是一个单独的图像)
  2. 在不同的目标设备上复制所有共享库和测试应用程序。
  3. 现在在目标设备上执行测试应用程序以验证不同共享库的功能
  4. 现在要求检查这个“测试应用程序”提供的覆盖范围。

    到目前为止已尝试过的内容 -

    1. 在linux主机上安装Bullseye(用于编译项目) 表1.A设置我的环境PATH = / BullseyecoveragePath / bin @ path of path
    2. 项目编译make文件被修改为使用Bullseye包附带的编译器, 也使用covc
    3. CC = / BullseyecoveragePath / bin / covc /BullseyecoveragePath/bin/gcc-4.6 CXX = / BullseyecoveragePath / bin / covc / BullseyecoveragePath / bin / g ++ - 4.6

      1. export COVFILE = / data / test.cov
      2. 导出COVDIR = / Project / src / base
      3. cov01 --on

      4. 项目编译成功(编译时显示靶心横幅) *经过次要的libcov32.a库调整后

      5. test.cov也会在编译完成后生成

      6. 问题 -

        1. 尝试在设备上复制编译库abc.so def.so和xyz.so以及“test application” 表1.A复制的test.cov - > /目标机器的数据 1.B. export COVFILE = / data / test.cov
        2. Ran“test application” - >成功执行
        3. 将test.cov复制回主机以查看覆盖范围。 ???但是test.cov文件没有变化???
        4. 有人可以帮助我缺少什么或者需要做些什么来使其适用于 -

          1. 共享图书馆
          2. 在两个不同的系统之间(在一个系统上编译,在第二个系统上运行)
          3. 由于

1 个答案:

答案 0 :(得分:1)

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

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

  

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

所以也许看起来covfile的大小相同,但它实际上包含了覆盖率信息?您可以尝试使用CoverageBrowser程序查看它。