本文共 1223 字,大约阅读时间需要 4 分钟。
linux内核测试
借助来自1,700多个不同开发人员的每个版本的14,000个变更集,很明显Linux内核发展Swift,并带来了许多复杂性。 内核错误的范围从小麻烦到大问题,例如系统崩溃和数据丢失。
随着对越来越多的项目进行持续集成(CI)的呼声越来越高, 团队朝着一个使命前进:防止错误被合并到内核中。
需要时,许多Linux发行版都会测试Linux内核。 该测试通常在发布时或用户发现错误时进行。
有时会出现不相关的问题,维护人员会争先恐后地查找包含成千上万个补丁的变更集中的哪个补丁引起了新的,不相关的错误。 诊断错误可能需要专用的硬件,一系列触发器以及对该内核部分的专业知识。
大多数现代软件存储库都有某种自动化的CI测试,可以在提交提交到存储库之前测试提交。 通过自动测试,维护人员可以通过查看CI报告来发现软件质量问题以及大多数错误。 诸如Python库之类的更简单的项目附带了大量的工具,可以使此过程变得更容易。
在进行任何测试之前,必须先配置和编译Linux。 这样做会花费时间并计算资源。 此外,该内核必须在虚拟机或裸机上引导以进行测试。 获得对某些系统体系结构的访问权需要额外的花费或非常缓慢的仿真。 从那里,某人必须确定一组触发错误或验证修复的测试。
Red Hat的CKI团队目前遵循几个内部内核以及上游内核(例如更改。 我们在每个存储库中监视两个关键事件:
当维护人员合并拉取请求或补丁时,存储库中的最终提交将更改。
当开发人员提出通过修补程序或稳定的修补程序队列进行合并的更改时。
当这些事件发生时,自动化就付诸行动,并且开始测试过程。 一旦管道运行了脚本,合并了所有补丁程序并针对多种架构编译了内核,就开始了真正的测试。 我们可以在不到六分钟的时间内为四种架构编译内核,并通常在两个小时或更短的时间内将反馈提交给稳定的邮件列表。 自2019年1月以来,每月运行超过100,000个内核测试,并且已完成超过11,000个GitLab管道。
每个内核都在其本机体系结构上启动,该体系结构包括:
● :64位 ,例如 。
● :大小端的系统。
● : 大型机。
● : 和工作站,笔记本电脑和服务器。
在这些内核上运行多种测试,包括 ,其中包含使用通用测试工具进行的大量测试。 我的CKI团队开源了44项测试,并且还在进行中。
上游内核测试的工作量每天都在增加。 许多公司为各种内核提供测试输出,包括 ,Intel, 和 。 每个工作都集中在为上游内核以及每个公司的客户群带来价值上。
如果您或您的公司希望参与其中,请参加在葡萄牙里斯本 。 在会议结束后的两天里,加入我们参加Kernel CI hackfest,并推动快速内核测试的未来。
有关更多详细信息,请我的Texas Linux Fest 2019演讲中 。
翻译自:
linux内核测试
转载地址:http://deizd.baihongyu.com/