import ./make-test-python.nix ({ pkgs, systemdStage1 ? false, ...} : let msg = "Shutting down NixOS"; in { name = "systemd-shutdown"; meta = with pkgs.lib.maintainers; { maintainers = [ das_j ]; }; nodes.machine = { imports = [ ../modules/profiles/minimal.nix ]; systemd.shutdownRamfs.contents."/etc/systemd/system-shutdown/shutdown-message".source = pkgs.writeShellScript "shutdown-message" '' echo "${msg}" ''; boot.initrd.systemd.enable = systemdStage1; }; testScript = '' machine.wait_for_unit("multi-user.target") # .shutdown() would wait for the machine to power off machine.succeed("systemctl poweroff") # Message printed by systemd-shutdown machine.wait_for_console_text("Unmounting '/oldroot'") machine.wait_for_console_text("${msg}") # Don't try to sync filesystems machine.wait_for_shutdown() ''; })