自动化测试进入Linux内核:KernelCI

2021-09-23 18:30:05
导读 最近在葡萄牙里斯本举行的Linux内核管道工大会上,最热门的话题之一就是如何自动测试Linux内核。在那里,顶级的Linux开发人员在测试框架Ker

最近在葡萄牙里斯本举行的Linux内核管道工大会上,最热门的话题之一就是如何自动测试Linux内核。在那里,顶级的Linux开发人员在测试框架KernelCI的支持下一起工作。现在,在法国里昂举行的欧洲开源峰会上,为了帮助KernelCI获得成功所需的资源,它成为了Linux基金会的一个项目。

它是这样工作的:你可能知道Linux内核是由一个大型协作开源社区开发的,它通过Linux内核邮件列表(LKML)工作。你不能反对这种方法。然而,Linux内核测试是分散的——因为它主要是在特殊的孤岛上完成的,在测试软件或方法上没有足够的合作。

部分问题是如何使用Linux邮件列表完成补丁。Linux内核开发人员Russell Currey最近解释说:

“[仅不同于GitHub或基于GitLab的项目],其中拉取请求包含合并一组更改所需的所有信息;例如,包含补丁7/10的电子邮件缺乏上下文。几乎不可能。修补程序系列是否已被合并、拒绝或被电子邮件替换。一般来说,邮件列表根本没有与当代项目托管网站相同级别的元数据,这使得CI[持续集成]问题变得更加困难。

具体问题?一开始,KernelCI是为了解决在各种硬件上测试Linux的问题而设计的。到目前为止,测试Linux补丁的时候,都是在开发者自己的电脑上完成的。这意味着您可以确定Linux将在主流硬件上按预期运行。然而,如果你的硬件不是那么受欢迎…那么它很可能没有经过测试。

正如Linux稳定分支的维护者Greg Kroah-Hartman解释的那样:

“Linux可以在任何地方和许多不同的硬件上运行,但是在这个硬件上很少有测试。大多数人只是在测试他们关心的一些事情。因此,我们希望在尽可能多的硬件上进行测试。确保我们实际上支持我们声称支持的所有硬件。”

然而,展望未来,KernelCI将做的不仅仅是硬件测试。KernelCI联合创始人、高级工程师Kevin Hilman在其开源欧洲峰会的主题中解释道:

“我们在Linux水管工聚会。我们现在面临的一个主要问题是,我们有六七个不同的代码测试项目向内核开发人员和维护人员发送报告,这真的很烦人,所以我们走到一起说,‘选择一个并将其用作框架’,所以我们在KernelCI上达成了共识,所以我们将共同努力,而不是重复我们的努力和成就。”

通过合并这些测试项目并找到共同点,新的KernelCI还将帮助解决LKML的补丁处理问题。

因此,尽管仍然有许多Linux测试套件,但它们之间没有真正的协调,也不再是孤立的。KernelCI未来的目标不仅仅是测试各种设备,还要统一所有上游的Linux内核测试工作。总之,这将提供一个存储、查看、比较和跟踪测试结果的地方。

“它提供了Linux对社会的重要性,实现Linux内核的全面测试覆盖非常重要。通过将开源理念应用于测试,KernelCI分布式架构使整个内核社区能够围绕单个上游CI系统进行协作。”开源咨询公司业务发展副总裁、KernelCI撰稿人Collabora说,Guy Lunardi。

综上所述,KernelCI将完善Linux长期支持(LTS)内核的测试和验证。巩固现有的测试计划;提高Linux的整体安全性;并且增加了测试硬件的数量。反过来,这将提高质量和稳定性。以及Linux内核的长期维护。另外,这是一件非常好的事情。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。