Jan Dąbroś is an embedded software engineer interested in firmware, hardware and security.
He is working at the Semihalf - company based in Cracow, Poland. Previously he was working on different firmware projects (both for embedded and server class platforms), including U-Boot, ARM-TF and EDK2. Recently he has engaged in development of the coreboot.
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.