1import ./make-test-python.nix (
2 { lib, ... }:
3 {
4 name = "nixos-generate-config";
5 meta.maintainers = with lib.maintainers; [ basvandijk ];
6 nodes.machine = {
7 system.nixos-generate-config.configuration = ''
8 # OVERRIDDEN
9 { config, pkgs, ... }: {
10 imports = [ ./hardware-configuration.nix ];
11 $bootLoaderConfig
12 $desktopConfiguration
13 }
14 '';
15
16 system.nixos-generate-config.desktopConfiguration = [
17 ''
18 # DESKTOP
19 services.xserver.displayManager.gdm.enable = true;
20 services.xserver.desktopManager.gnome.enable = true;
21 ''
22 ];
23 };
24 testScript = ''
25 start_all()
26 machine.wait_for_unit("multi-user.target")
27 machine.succeed("nixos-generate-config")
28
29 machine.succeed("nix-instantiate --parse /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
30
31 # Test if the configuration really is overridden
32 machine.succeed("grep 'OVERRIDDEN' /etc/nixos/configuration.nix")
33
34 # Test if desktop configuration really is overridden
35 machine.succeed("grep 'DESKTOP' /etc/nixos/configuration.nix")
36
37 # Test of if the Perl variable $bootLoaderConfig is spliced correctly:
38 machine.succeed(
39 "grep 'boot\\.loader\\.grub\\.enable = true;' /etc/nixos/configuration.nix"
40 )
41
42 # Test if the Perl variable $desktopConfiguration is spliced correctly
43 machine.succeed(
44 "grep 'services\\.xserver\\.desktopManager\\.gnome\\.enable = true;' /etc/nixos/configuration.nix"
45 )
46
47 machine.succeed("rm -rf /etc/nixos")
48 machine.succeed("nixos-generate-config --flake")
49 machine.succeed("nix-instantiate --parse /etc/nixos/flake.nix /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
50 '';
51 }
52)