summaryrefslogtreecommitdiffstats
path: root/nixos/tests/nix-daemon-unprivileged.nix
blob: 6605b5b0bb61dced32e65275060aecf7992fb2d1 (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
{ lib, pkgs, ... }:
{
  name = "nix-daemon-unprivileged";
  meta.maintainers = with lib.maintainers; [ artemist ];

  nodes.machine = {
    users.groups.nix-daemon = { };
    users.users.nix-daemon = {
      isSystemUser = true;
      group = "nix-daemon";
    };

    nix = {
      package = pkgs.nixVersions.git;
      daemonUser = "nix-daemon";
      daemonGroup = "nix-daemon";
      settings.experimental-features = [
        "local-overlay-store"
        "auto-allocate-uids"
      ];
    };
    nix.enable = true; # disabled by default. See all-tests.nix / tag(no-nix-by-default)

    # Easiest way to get a file onto the machine
    environment.etc."test.nix".text = ''
      derivation {
        name = "test";
        builder = "/bin/sh";
        args = [ "-c" "echo succeeded > $out" ];
        system = "${pkgs.stdenv.hostPlatform.system}";
      }
    '';
  };
  testScript = ''
    start_all()
    machine.wait_for_unit("sockets.target")
    machine.succeed("NIX_REMOTE=daemon nix-build /etc/test.nix")
  '';
}