Brussels / 3 & 4 February 2024


Running systemd integration tests with mkosi

Testing an init system is not an easy task. As it is impossible to have more than a single init system running as PID 1 on a machine, testing an init system is only feasible by using external testing hardware or virtual machines. In this talk we'll go over systemd's existing integration test suite, how it works, and our current project to migrate the integration test suite to run in virtual machine images produced by mkosi, systemd's image builder sister project.

We'll also discuss many of the features systemd and mkosi provide that make running integration tests in virtual machines a breeze. This includes but is not limited to communicating the exit status of an integration test to the host system once the integration test finishes, automatically running the integration test once the virtual machine has booted, using ephemeral instances of the same image for each individual test to make it trivial to run tests in parallel, automatically tunneling test logs out of the virtual machine and more.


Daan De Meyer