at 23.05-pre 1.6 kB view raw
1import ./make-test-python.nix ({ lib, pkgs, ... }: { 2 name = "systemd-initrd-simple"; 3 4 nodes.machine = { pkgs, ... }: { 5 boot.initrd.systemd = { 6 enable = true; 7 emergencyAccess = true; 8 }; 9 fileSystems = lib.mkVMOverride { 10 "/".autoResize = true; 11 }; 12 }; 13 14 testScript = '' 15 import subprocess 16 17 with subtest("handover to stage-2 systemd works"): 18 machine.wait_for_unit("multi-user.target") 19 machine.succeed("systemd-analyze | grep -q '(initrd)'") # direct handover 20 machine.succeed("touch /testfile") # / is writable 21 machine.fail("touch /nix/store/testfile") # /nix/store is not writable 22 # Special filesystems are mounted by systemd 23 machine.succeed("[ -e /run/booted-system ]") # /run 24 machine.succeed("[ -e /sys/class ]") # /sys 25 machine.succeed("[ -e /dev/null ]") # /dev 26 machine.succeed("[ -e /proc/1 ]") # /proc 27 # stage-2-init mounted more special filesystems 28 machine.succeed("[ -e /dev/shm ]") # /dev/shm 29 machine.succeed("[ -e /dev/pts/ptmx ]") # /dev/pts 30 machine.succeed("[ -e /run/keys ]") # /run/keys 31 32 33 with subtest("growfs works"): 34 oldAvail = machine.succeed("df --output=avail / | sed 1d") 35 machine.shutdown() 36 37 subprocess.check_call(["qemu-img", "resize", "vm-state-machine/machine.qcow2", "+1G"]) 38 39 machine.start() 40 newAvail = machine.succeed("df --output=avail / | sed 1d") 41 42 assert int(oldAvail) < int(newAvail), "File system did not grow" 43 ''; 44})