Running NixOS Integration Tests on Real Hardware
When developing operating systems and other hardware-related functionality, many critical behaviors can only be properly tested on real hardware. Drivers, firmware interactions, and peripherals are difficult, sometimes even impossible, to test reliably in a virtualized environment. At the same time, the NixOS integration test framework provides a developer experience that is invaluable for reproducible integration testing, but is limited to virtual machines.
In this talk, we present an extension to the Nixpkgs integration test framework that allows the familiar test driver running inside its QEMU VM to control a real machine over the network. This is enabled by a REST-based backend that manages provisioning, booting, and interaction with physical devices.
We will discuss the overall architecture, the integration with the test framework, and what it takes to enable reproducible Hardware-in-the-Loop test automation.
Markus Napierkowski is Head of Test Automation and CI at Cyberus Technology GmbH, where he contributed to different low-level virtualization projects in the past and helped build an internal hardware test automation service. He is currently responsible for the Cidoka department, which offers consulting and services around the software development lifecycle, with a focus on on-hardware test automation.