对内核模块代码进行单元测试是不是可行?

Posted

技术标签:

【中文标题】对内核模块代码进行单元测试是不是可行?【英文标题】:Is it feasible to unit test kernel module code ?对内核模块代码进行单元测试是否可行? 【发布时间】:2016-02-06 16:44:08 【问题描述】:

如果是这样,我应该使用什么技术? 我正在考虑使用 hippomock,因为它们可以用来模拟“C”方法。有没有更好的方法?如果是这样,任何人都可以提供建议,还是您认为内核单元测试是一种矫枉过正?

【问题讨论】:

你搜索过这个主题吗?周围有很多论坛问题。 是的,我做了,看起来内核开发不使用任何单元测试(因为很难这样做),但是我认为它仍然可以完成,尤其是使用模拟框架 对内核进行单元测试确实很难,linux-kernel的主要测试方法是一个庞大的社区,执行大量测试和相关文档。 这当然不容易,但你可以将some techniques for testing in embedded programming 应用于内核模块。这在很大程度上取决于您的模块依赖于内核其余部分的多少功能,因为您可能需要模拟这些功能,这可能变得不切实际。 ***.com/questions/3177338/how-is-linux-kernel-tested/… 【参考方案1】:

由于 Linux 内核版本 5.5 KUnit 可用。它是一个轻量级的内核单元测试框架。

更多详情请看

https://www.kernel.org/doc/html/latest/dev-tools/kunit/index.html https://kunit.dev/ https://lwn.net/Articles/780985/

【讨论】:

以上是关于对内核模块代码进行单元测试是不是可行?的主要内容,如果未能解决你的问题,请参考以下文章

单元测试

软件测试--模块测试(单元测试)

对 Apache Thrift 生成的代码进行单元测试是不是有必要?

如何对非导出函数进行单元测试?

测试内核模块

测试工作二