Currently we often have a fairly big disconnect between generic testing and quality efforts and the work of developers and maintainers. There is a lot of testing that is done by people working on the kernel that is not covered by what the general testing efforts do, and conversely it is often hard for developers and maintainers to access broader community resources when extra testing is...
Since 2017, [syzbot][1] (powered by [syzkaller][2] - a coverage-guided kernel fuzzer) has already reported [thousands][3] of bugs to the Linux kernel mailing lists and [thousands][4] have already been fixed.
However, as our statistics [show][5], a lot of reported issues get fixed only after a long delay or don't get fixed at all. That means we could still do much better in addressing the...
Despite everyone's efforts, there's still more kernel to test. One problem area that keeps popping up is the need to replace functions with 'fake' or 'mock' equivalents in order to test hardware or less-self-contained subsystems. We will discuss two methods of replacing functions: one based on ftrace, and another based on "static stubbing" using a function prologue.
We will also provide a...
Unit testing is a great way to ensure code reliability, leading to organic improvements, as it's often possible to integrate it with developers' workflows. It is also of great help when refactoring, which should be a primordial task in large code bases. When it comes to the Linux kernel, the KUnit framework looks very promising, as it works natively from inside the kernel, and provides an...