自动化测试进入Linux内核

2019-10-28 23:01:51

在葡萄牙里斯本举行的最近的Linux Kernel Plumbers聚会上,最热门的话题之一是如何对Linux内核进行更好的自动化测试。在那里,顶尖的Linux开发人员在一个测试框架KernelCI的支持下共同努力。现在,在法国里昂举行的欧洲开源峰会上,为了帮助KernelCI获得成功所需的资源,它成为了Linux Foundation项目。

它是这样工作的:您可能知道Linux内核是由一个大型的协作式开源社区开发的,该社区通过Linux内核邮件列表(LKML)进行工作。您不能与该方法争论。但是Linux内核测试是分散的-因为它主要是在专用孤岛中完成的,而在测试软件或方法上没有足够的协作。

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

“ [不同于仅基于GitHub 或 GitLab的项目 ],其中拉取请求包含合并一组更改所需的所有信息;包含例如补丁7/10的电子邮件缺少上下文。这几乎是不可能的。一个贴片系列是否已被合并电子邮件,拒绝或取代。一般来说,邮件列表根本就没有进行元数据作为当代的项目托管网站的同一水平,这使得CI [持续集成]问题更难“。

具体问题?KernelCI的设计之初旨在解决在各种硬件上测试Linux的问题。到目前为止,在测试Linux修补程序时,它们都是在开发人员自己的计算机上完成的。这意味着您可以确定Linux将在主流硬件上按预期运行。但是,如果您的硬件不是那么受欢迎的话……那么,很有可能没有经过测试。

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

“ Linux在任何地方都可以运行,并且可以在许多不同的硬件上运行,但是对该硬件的测试非常少。大多数人只是在测试他们关心的几件事。因此,我们希望在尽可能多的硬件上对其进行测试。可以确保我们实际上支持我们声称支持的所有硬件。”

但是,展望未来,KernelCI将做的不只是硬件测试。凯文Hilman,KernelCI的联合创始人,并在高级工程师 BayLibre,在他的开源欧洲首脑会议的主题解释说:

“我们在Linux Plumbers聚在一起。我们现在遇到的主要问题之一是,我们有六个或七个不同的代码测试项目正在向内核开发人员和维护人员发送报告,这真是令人讨厌,所以我们走到一起说,'选择一个并将其用作框架”,因此我们就KernelCI达成了共识,因此我们将共同努力,而不是重复我们的努力和成果。”

通过合并这些测试项目并寻求共同点,新的KernelCI也将帮助解决在LKML中处理补丁的问题。

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

“提供了Linux对社会的重要性,实现对Linux内核的全面测试覆盖是至关重要的。通过将开源哲学应用于测试,KernelCI分布式体系结构使整个内核社区能够围绕单个上游CI系统进行协作。”开源咨询公司业务开发副总裁兼KernelCI贡献者Collabora表示,Guy Lunardi说。

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

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