For some things, like RAUC updates, going through the "full" e2e workflow is good: we check everything starting from the installer, without taking shortcuts, "mocking" things or altering the configuration.
For other things (say, checking certain configuration logic, e.g. #324), it would be sufficient to have a bootable test system in the style of ./build vm / testing/system/default.nix which has the same configuration as the real system, but is not produced via the installer.
This would allow writing tests that can be run faster than e2e tests and are easier to work with.
More random thoughts:
- Partial RAUC support could be present via (some extension of)
testing/system/fake-rauc-boot.nix.
- Can fake partition layout / persistent data via virtfs?