【问题标题】:gcov not detecting correct kunit testsgcov 未检测到正确的 kunit 测试
【发布时间】:2022-01-07 04:52:07
【问题描述】:

我开始为我目前正在编写的不同内核模块进行一系列单元测试。为此,我使用了出色的 KUnit 框架。

按照 KUnit 网页上描述的简单测试,我能够创建第一个测试系列,按预期编译、运行和显示结果。

对我来说,下一步是使用这些结果的代码覆盖率来生成不同模块上测试策略的覆盖率质量报告。

当我打开代码覆盖的结果时,问题就来了。它表明我正在编写的模块中的测试没有解析任何行。我知道事实并非如此,因为我在测试函数中生成了一个失败的测试:

KUNIT_FAIL(test, "This test never passes.");

并且 kunit.py 报告测试失败。甚至测试的源代码也没有被报告为隐蔽...

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: unit-testing linux-kernel gcov


    【解决方案1】:

    我将发布我自己问题的答案,希望这会对处于相同情况的人有所帮助。

    有两个问题:

    1. GCC 版本(如 Kunit 文档中所述)必须低于 7.xx
    2. kunit 的代码覆盖率从 5.14 开始提供。

    一旦我使用 gcc 6.5.0 和 5.15 内核,按照 kunit 中的手册进行代码覆盖,一切正常!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 2014-11-18
      • 2023-03-20
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多