File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11{ ... } :
22{
33 config . testing . tests . limine . limine = {
4+ # Limine is a bootloader — we can't test the actual boot process in a VM,
5+ # but we can verify the binary, config generation, and provider wiring.
46 nodes . machine =
5- { ... } :
7+ { pkgs , ... } :
68 {
79 services . mdevd . enable = true ;
810 programs . limine . enable = true ;
11+ environment . systemPackages = [ pkgs . limine ] ;
912 } ;
1013
1114 testScript = ''
1215 machine.start()
1316 machine.wait_for_console_text("entering runlevel 2")
1417
15- with subtest("limine is available"):
16- machine.succeed("test -e /run/current-system/sw")
18+ with subtest("limine binary is available"):
19+ machine.succeed("limine --version 2>&1 | grep -i limine")
20+
21+ with subtest("limine is the configured bootloader"):
22+ # system.installBootLoader lives in the closure — check the limine binary
23+ # is present and the module didn't break evaluation
24+ machine.succeed("limine --help 2>&1 | grep -iq limine")
1725
1826 machine.shutdown()
1927 '' ;
Original file line number Diff line number Diff line change 1212 machine.start()
1313 machine.wait_for_console_text("entering runlevel 2")
1414
15- with subtest("lxqt is available"):
16- machine.succeed("test -e /run/current-system/sw")
15+ with subtest("lxqt-session binary is available"):
16+ machine.succeed("which startlxqt")
17+
18+ with subtest("pcmanfm-qt file manager is available"):
19+ machine.succeed("which pcmanfm-qt")
20+
21+ with subtest("lxqt-panel is available"):
22+ machine.succeed("which lxqt-panel")
23+
24+ with subtest("wayland session desktop file is installed"):
25+ machine.succeed("test -f /run/current-system/sw/share/wayland-sessions/lxqt-wayland.desktop")
26+
27+ with subtest("lxqt session.conf is installed"):
28+ machine.succeed("test -f /etc/xdg/lxqt/session.conf")
1729
1830 machine.shutdown()
1931 '' ;
Original file line number Diff line number Diff line change 11{ ... } :
22{
33 config . testing . tests . openresolv . openresolv = {
4- nodes . machine = { ... } : { } ;
4+ # openresolv is a deprecated alias — importing this module now just emits a
5+ # warning; resolvconf itself is a required module always present in finix.
6+ nodes . machine =
7+ { ... } :
8+ {
9+ services . mdevd . enable = true ;
10+ programs . resolvconf . enable = true ;
11+ } ;
512
613 testScript = ''
714 machine.start()
815 machine.wait_for_console_text("entering runlevel 2")
916
10- with subtest("system is up"):
11- machine.succeed("true")
17+ with subtest("resolvconf binary is in PATH"):
18+ machine.succeed("which resolvconf")
19+
20+ with subtest("resolvconf.conf is installed"):
21+ machine.succeed("test -f /etc/resolvconf.conf")
22+
23+ with subtest("resolvconf lists interfaces without error"):
24+ machine.succeed("resolvconf -l 2>&1; true")
1225
1326 machine.shutdown()
1427 '' ;
Original file line number Diff line number Diff line change 55 { pkgs , lib , ... } :
66 {
77 services . mdevd . enable = true ;
8- # virtualbox kernel modules only build on x86_64
8+ # virtualbox only builds on x86_64
99 programs . virtualbox . enable = lib . mkIf pkgs . stdenv . hostPlatform . isx86_64 true ;
1010 } ;
1111
1212 testScript = ''
1313 machine.start()
1414 machine.wait_for_console_text("entering runlevel 2")
1515
16- with subtest("system is up"):
17- machine.succeed("true")
16+ arch = machine.succeed("uname -m").strip()
17+
18+ if arch == "x86_64":
19+ with subtest("VBoxManage is available"):
20+ machine.succeed("VBoxManage --version")
21+
22+ with subtest("vboxusers group exists"):
23+ machine.succeed("getent group vboxusers")
24+
25+ with subtest("VBoxHeadless is available"):
26+ machine.succeed("VBoxHeadless --version")
27+ else:
28+ with subtest("non-x86 platform skips virtualbox"):
29+ machine.log(f"virtualbox is x86-only; skipping on {arch}")
1830
1931 machine.shutdown()
2032 '' ;
Original file line number Diff line number Diff line change 44 nodes . machine =
55 { ... } :
66 {
7- # keventd requires finit >= 5.0 which is not yet in nixpkgs;
8- # use mdevd as device manager and just verify the system boots
7+ # keventd requires finit >= 5.0, which is not yet in nixpkgs (current: 4.x).
8+ # The module's assertion prevents enabling it with the packaged finit.
9+ # Use mdevd as the device manager and verify the base system is healthy.
910 services . mdevd . enable = true ;
1011 } ;
1112
1213 testScript = ''
1314 machine.start()
1415 machine.wait_for_console_text("entering runlevel 2")
1516
16- with subtest("keventd module loads"):
17- machine.succeed("true")
17+ with subtest("mdevd is running as device manager"):
18+ machine.wait_until_succeeds("initctl status mdevd | grep running", timeout=30)
19+
20+ with subtest("mdevd hotplug rules are present"):
21+ machine.succeed("test -f /etc/mdev.conf")
1822
1923 machine.shutdown()
2024 '' ;
You can’t perform that action at this time.
0 commit comments