nixos/switchTest: Also test boot/switch actions
This commit is contained in:
parent
85874efcb0
commit
2473cce829
1 changed files with 26 additions and 0 deletions
|
@ -51,6 +51,12 @@ in {
|
|||
environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
|
||||
users.mutableUsers = false;
|
||||
|
||||
# For boot/switch testing
|
||||
system.build.installBootLoader = lib.mkForce (pkgs.writeShellScript "install-dummy-loader" ''
|
||||
echo "installing dummy bootloader"
|
||||
touch /tmp/bootloader-installed
|
||||
'');
|
||||
|
||||
specialisation = rec {
|
||||
simpleService.configuration = {
|
||||
systemd.services.test = {
|
||||
|
@ -510,6 +516,25 @@ in {
|
|||
"${stderrRunner} ${otherSystem}/bin/switch-to-configuration test"
|
||||
)
|
||||
|
||||
|
||||
with subtest("actions"):
|
||||
# boot action
|
||||
machine.fail("test -f /tmp/bootloader-installed")
|
||||
out = switch_to_specialisation("${machine}", "simpleService", action="boot")
|
||||
assert_contains(out, "installing dummy bootloader")
|
||||
assert_lacks(out, "activating the configuration...") # good indicator of a system activation
|
||||
machine.succeed("test -f /tmp/bootloader-installed")
|
||||
machine.succeed("rm /tmp/bootloader-installed")
|
||||
|
||||
# switch action
|
||||
machine.fail("test -f /tmp/bootloader-installed")
|
||||
out = switch_to_specialisation("${machine}", "", action="switch")
|
||||
assert_contains(out, "installing dummy bootloader")
|
||||
assert_contains(out, "activating the configuration...") # good indicator of a system activation
|
||||
machine.succeed("test -f /tmp/bootloader-installed")
|
||||
|
||||
# test and dry-activate actions are tested further down below
|
||||
|
||||
with subtest("services"):
|
||||
switch_to_specialisation("${machine}", "")
|
||||
# Nothing happens when nothing is changed
|
||||
|
@ -523,6 +548,7 @@ in {
|
|||
|
||||
# Start a simple service
|
||||
out = switch_to_specialisation("${machine}", "simpleService")
|
||||
assert_lacks(out, "installing dummy bootloader") # test does not install a bootloader
|
||||
assert_lacks(out, "stopping the following units:")
|
||||
assert_lacks(out, "NOT restarting the following changed units:")
|
||||
assert_contains(out, "reloading the following units: dbus.service\n") # huh
|
||||
|
|
Loading…
Reference in a new issue