feat: add support for running NixOS VM tests more easily

This commit is contained in:
technofab 2026-01-20 20:11:18 +01:00
parent f8fa0846ce
commit c64e0cce0c
Signed by: technofab
SSH key fingerprint: SHA256:bV4h88OqS/AxjbPn66uUdvK9JsgIW4tv3vwJQ8tpMqQ
4 changed files with 139 additions and 24 deletions

View file

@ -64,6 +64,7 @@ There are currently 3 types of tests:
- `snapshot` -> snapshot testing, only needs `actual` and compares that to the snapshot
- `unit` -> equality checking, needs `expected` and `actual` or `actualDrv`
- `script` -> shell script test, needs `script`
- `vm` -> NixOS VM test, needs `vmConfig`
Examples:
@ -126,6 +127,23 @@ Examples:
expected = pkgs.hello;
actual = pkgs.hello;
}
{
name = "vm-test";
type = "vm";
# gets passed to pkgs.testers.nixosTest, so same params apply
# name gets automatically set, so thats not required
vmConfig = {
nodes.machine = {
services.nginx.enable = true;
};
testScript =
# py
''
machine.wait_for_unit("nginx.service")
machine.wait_for_open_port(80)
'';
};
}
]
```