summaryrefslogtreecommitdiffstats
path: root/nixos/tests/acl.nix
blob: 189abc08f420317f20bc7c1ba13d58fc3302489c (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
{
  vmTools,
  perl,
  coreutils,
  acl,
}:
# Can't run this within a VM because tests require root access
# Can't easily use a standard VM test because we need to have access to intermediate build results
vmTools.runInLinuxVM (
  acl.overrideAttrs (old: {
    postPatch = old.postPatch or "" + ''
      # The runwrapper uses LD_PRELOAD to override available user/groups
      substituteInPlace Makefile.in --replace-fail \
        'TEST_LOG_COMPILER = $(srcdir)/test/runwrapper' \
        'TEST_LOG_COMPILER = $(srcdir)/test/run'
    '';
    nativeCheckInputs = old.nativeCheckInputs or [ ] ++ [
      perl
      # By default `ls` would come from bootstrap tools,
      # which doesn't support showing ACLs, which the tests rely on
      coreutils
    ];
    preCheck = ''
      cp test/test.passwd /etc/passwd
      cp test/test.group /etc/group
    '';
    doCheck = true;
    outputs = [ "out" ];
    installPhase = ''
      touch $out
    '';
  })
)