anchor.diff:          "${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
  
positive.code:     machine = { pkgs, lib, ... }: {
        environment.systemPackages = [ pkgs.socat ]; # for the socket activation stuff
        users.mutableUsers = false;
  
        specialisation = rec {
          simpleService.configuration = {
  
negative.code: 
          # 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
  