--MajorHayden(作者)
Linux内核的每位发布版本包含了来自1,700个开发者形成的14,000个变更集,很似乎查看linux系统内核,这促使Linux内核快速迭代的同时也形成了巨大的复杂性问题。内核上Bug有小麻烦也有大问题,有时是系统崩溃,有时是数据遗失。
随着越来越多的项目对于持续集成(CI)的呼声,内核持续集成(CKI)小组秉持着一个任务目标:避免Bug被合并到内核当中。
Linux测试问题
许多Linux发行版只在须要的时侯对Linux内核进行测试。而这些测试常常只在版本发布时或则用户发觉错误时进行。
有时侯查看linux系统内核,出现玄学问题时,维护人员须要在包含了数万个补丁的变更中仓促地找寻那个补丁造成这个新的玄学Bug。确诊Bug须要专业的硬件设备、一系列的触发器以及内核相关的专业知识。
CI和Linux
许多现代软件代码库都采用某种手动化CI测试机制,才能在递交步入代码储存库之前对其进行测试。这些手动化测试致使维护人员可以通过查看CI测试报告来发觉软件质量问题以及大多数的错误。一些简单的项目,例如某个Python库,附送的大量工具致使整个检测过程更简单。
在任何测试之前都须要配置和编译Linux。而如此做将花费大量的时间和估算资源。据悉,Linux内核必需在虚拟机或则裸机上启动能够进行测试。而访问个别硬件构架须要额外的开支或则特别慢的仿真。因而,人们必须确定一组才能触发错误或则验证修补的测试集。
CKI团队怎样运作?
RedHat公司的CKI团队当前正追踪来自数个内部内核分支和上游的稳定内核分支树等内核分支的修改。我们关注每位代码库的两类关键风波:
当维护人员合并PR或则补丁时,代码库变化后的最终结果。当开发人员通过堆砌或则稳定补丁队列发起变更合并时。
当这种风波发生时,手动化工具开始执行android linuxlinux系统介绍,GitLabCI管线开始进行测试。一旦管线开始执行linting脚本、合并每一个补丁,并为多种硬件构架编译内核,真正的测试便开始了。我们会在六分钟内完成四种硬件构架的内核编译工作,但是一般会在两个小时或更短的时间内将反馈递交到稳定电邮列表中。(自2019年1月起)每月执行超过100,000次内核测试,并完成了超过11,000个GitLab管路。
每位内核就会在本地硬件构架上启动,其中包含:
这种内核上运行了包括Linux测试项目(LTP)在内的多个测试,其中包括使用常用测试工具的大量测试。我们CKI团队开源了超过44个测试并将继续开源更多测试。
参与其中
上游的内核测试工作逐渐增多。包括Google、Intel、Linaro和Sony在内的许多公司为各类内核提供了测试输出。每一项工作都专注于为上游内核以及每位公司的顾客群带来价值。
假如你或则你的公司想要参与这一工作,请出席在9月份在匈牙利布达佩斯举行的LinuxPlumbersConference2019。在大会结束后的三天加入我们的KernelCIhackfest活动,并促进快速内核测试的发展。
更多详尽信息,请见我在TexasLinuxFest2019上的讲演。
via:
作者:MajorHayden选题:lujun9972译者:LazyWolfLin校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出