Linux introduces KernelCI, an automated testing framework for the Linux kernel
The automated test platform KernelCI has become a part of the Linux Foundation. KernelCI is a community-based open-source distributed test automation system focused on upstream Linux kernel development. The project has now received funding from companies including Google, Microsoft, and Red Hat. The KernelCI project began six or seven years ago.
As we all know, the Linux kernel is developed by a large collaborative open source community that collaborates through the Linux kernel mailing list (LKML). But Linux kernel testing is decentralized and there is not enough collaboration on test software or methods. Linux kernel developer Russell Currey mentioned that how to handle patches in this mailing list is a problem.
“[Unlike a project based solely on GitHub or GitLab] where a pull request contains all of the information needed to merge a group of changes; an email containing, say, patch 7/10 lacks that context. It is nearly impossible to tell from an email message whether a patch series has been merged, rejected, or superseded. In general, mailing lists simply do not carry the same level of metadata as contemporary project-hosting sites, and that makes the CI [Continuous Integration] problem harder.”
As Greg Kroah-Hartman, the maintainer of the Linux stable branch explained:
“Linux runs everywhere and on so many different pieces of hardware and but the testing on that hardware was very minimal. Most people, were just testing on the few things that they cared about. So we want to test it on as much hardware as we could to make sure that we’re actually supporting all the hardware that we claim we’re supporting.”
By merging these test items and seeking common ground, the new KernelCI will also help solve the problem of handling patches in LKML. Looking ahead, KernelCI will do more than just hardware testing. Kroah-Hartman believes that not only does it require better testing, but it also requires better tracking and repair. KernelCI’s future goal is not only to test a variety of devices but also to unify all upstream Linux kernel testing efforts. This will provide a platform to store, view, compare, and track test results.
In general, KernelCI will improve Linux Long Term Support (LTS) kernel testing, consolidate existing test plans, improve overall Linux security, and increase the amount of test hardware. This will improve the quality, stability, and long-term maintenance of the Linux kernel.