summaryrefslogtreecommitdiffstats
path: root/nixos/lib/testing/nixos-test-base.nix
blob: 5e4fe23f3b5e79617d635da5d362f4aa441a7e63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# A module containing the base imports and overrides that
# are always applied in NixOS VM tests, unconditionally,
# even in `inheritParentConfig = false` specialisations.
{ lib, ... }:
let
  inherit (lib) mkDefault mkForce;
in
{
  imports = [
    ../../modules/testing/test-instrumentation.nix # !!! should only get added for automated test runs
    ../../modules/virtualisation/guest-networking-options.nix
    {
      key = "no-manual";
      documentation.nixos.enable = false;
    }
    {
      key = "no-revision";
      # Make the revision metadata constant, in order to avoid needless retesting.
      # The human version (e.g. 21.05-pre) is left as is, because it is useful
      # for external modules that test with e.g. testers.nixosTest and rely on that
      # version number.
      config.system.nixos = {
        revision = mkForce "constant-nixos-revision";
        versionSuffix = mkForce "test";
        label = mkForce "test";
      };
    }
    (
      { config, ... }:
      {
        # Don't pull in switch-to-configuration by default, except when specialisations or early boot shenanigans are involved.
        # This is mostly a Hydra optimization, so we don't rebuild all the tests every time switch-to-configuration-ng changes.
        key = "no-switch-to-configuration";
        system.switch.enable = mkDefault (
          config.isSpecialisation
          || config.specialisation != { }
          || (!config.boot.isContainer && config.virtualisation.installBootLoader)
        );
      }
    )
  ];
}