anchor.diff:      '';
     };
   
  -  # options to add the disk to the test vm
  -  QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio";
  -
     # a part of the configuration of the test vm
     simpleConfig = {
       boot.loader.grub = {
  
positive.code:   machine = { config, pkgs, ... }: (simpleConfig // {
        imports = [ ../modules/profiles/installation-device.nix
                    ../modules/profiles/base.nix ];
        virtualisation.memorySize = 1024;
        # The test cannot access the network, so any packages
        # nixos-rebuild needs must be included in the VM.
        system.extraDependencies = with pkgs;
  
negative.code: 
    testScript = ''
      # hack to add the secondary disk
      os.environ[
          "QEMU_OPTS"
      ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"
  
      machine.start()
      machine.succeed("udevadm settle")
      machine.wait_for_unit("multi-user.target")
      print(machine.succeed("lsblk"))
  
      # check that os-prober works standalone
      machine.succeed(
          "${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1"
      )
  
      # rebuild and test that debian is available in the grub menu
      machine.succeed("nixos-generate-config")
      machine.copy_from_host(
          "${configFile}",
          "/etc/nixos/configuration.nix",
      )
      machine.succeed("nixos-rebuild boot >&2")
  
      machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg")
    '';
  })
  