Unit testing coreboot

Main Stage,

In May 2020, initial support for unit testing the coreboot landed in the tree - it was included in the 4.12 release. The unit testing infrastructure means to help the developers write unit tests in a structured and consistent manner across the whole project. Beside the core build system changes, the patchset comprised documentation with a rationale and test examples. From that time, a couple of new tests were upstreamed together with fixes for the firmware code being tested. Passing unit tests suite is currently one of the requirements for changes to be accepted upstream - this is embedded into the gerrit CI system.

This talk will present why and how the coreboot benefits from unit tests. It will also show more details about the implementation and how to build/run tests. Furthermore, the talk is meant to discuss the challenges of unit testing C code (specifically firmware) along with the plans for the future.