Unverified Commit 795c26dc authored by Artemis Tosini's avatar Artemis Tosini
Browse files

tests/nix-daemon-unprivileged: Add test for non-root nix daemon

parent bd49e432
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1099,6 +1099,7 @@ in
  nix-channel = pkgs.callPackage ../modules/config/nix-channel/test.nix { };
  nix-config = runTest ./nix-config.nix;
  nix-daemon-firewall = runTest ./nix-daemon-firewall.nix;
  nix-daemon-unprivileged = runTest ./nix-daemon-unprivileged.nix;
  nix-ld = runTest ./nix-ld.nix;
  nix-misc = handleTest ./nix/misc.nix { };
  nix-required-mounts = runTest ./nix-required-mounts;
+38 −0
Original line number Diff line number Diff line
{ 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"
      ];
    };

    # 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")
  '';
}