refactor: Use modular NixOS test entrypoint (#350436)

+2 -2
nixos/tests/all-tests.nix
···
nixops = handleTest ./nixops/default.nix {};
nixos-generate-config = handleTest ./nixos-generate-config.nix {};
nixos-rebuild-install-bootloader = handleTestOn ["x86_64-linux"] ./nixos-rebuild-install-bootloader.nix {};
-
nixos-rebuild-specialisations = handleTestOn ["x86_64-linux"] ./nixos-rebuild-specialisations.nix {};
-
nixos-rebuild-target-host = handleTest ./nixos-rebuild-target-host.nix {};
+
nixos-rebuild-specialisations = runTestOn ["x86_64-linux"] ./nixos-rebuild-specialisations.nix;
+
nixos-rebuild-target-host = runTest ./nixos-rebuild-target-host.nix;
nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; };
nixseparatedebuginfod = handleTest ./nixseparatedebuginfod.nix {};
node-red = handleTest ./node-red.nix {};
+7 -3
nixos/tests/nixos-rebuild-specialisations.nix
···
-
import ./make-test-python.nix ({ pkgs, ... }: {
+
{ hostPkgs, ... }: {
name = "nixos-rebuild-specialisations";
+
+
# TODO: remove overlay from nixos/modules/profiles/installation-device.nix
+
# make it a _small package instead, then remove pkgsReadOnly = false;.
+
node.pkgsReadOnly = false;
nodes = {
machine = { lib, pkgs, ... }: {
···
testScript =
let
-
configFile = pkgs.writeText "configuration.nix" ''
+
configFile = hostPkgs.writeText "configuration.nix" ''
{ lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
···
machine.fail("nixos-rebuild boot --specialisation foo")
machine.fail("nixos-rebuild boot -c foo")
'';
-
})
+
}
+13 -7
nixos/tests/nixos-rebuild-target-host.nix
···
-
import ./make-test-python.nix ({ pkgs, ... }: {
+
{ hostPkgs, ... }: {
name = "nixos-rebuild-target-host";
+
# TODO: remove overlay from nixos/modules/profiles/installation-device.nix
+
# make it a _small package instead, then remove pkgsReadOnly = false;.
+
node.pkgsReadOnly = false;
+
nodes = {
-
deployer = { lib, ... }: let
+
deployer = { lib, pkgs, ... }: let
inherit (import ./ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
in {
imports = [ ../modules/profiles/installation-device.nix ];
···
system.build.privateKey = snakeOilPrivateKey;
system.build.publicKey = snakeOilPublicKey;
-
# needed to provide STC implementation for target
+
# We don't switch on `deployer`, but we need it to have the dependencies
+
# available, to be picked up by system.includeBuildDependencies above.
system.switch.enable = true;
};
···
system.build = {
inherit targetConfig;
};
+
system.switch.enable = true;
networking.hostName = "target";
}
···
StrictHostKeyChecking=no
'';
-
targetConfigJSON = pkgs.writeText "target-configuration.json"
+
targetConfigJSON = hostPkgs.writeText "target-configuration.json"
(builtins.toJSON nodes.target.system.build.targetConfig);
-
targetNetworkJSON = pkgs.writeText "target-network.json"
+
targetNetworkJSON = hostPkgs.writeText "target-network.json"
(builtins.toJSON nodes.target.system.build.networkConfig);
-
configFile = hostname: pkgs.writeText "configuration.nix" ''
+
configFile = hostname: hostPkgs.writeText "configuration.nix" ''
{ lib, modulesPath, ... }: {
imports = [
(modulesPath + "/virtualisation/qemu-vm.nix")
···
deployer.succeed(f"mkdir -p {tmp_dir}")
deployer.succeed(f"TMPDIR={tmp_dir} nixos-rebuild switch -I nixos-config=/root/configuration-1.nix --target-host root@target &>/dev/console")
'';
-
})
+
}