nixos/tests/acl: init

Adds a NixOS test for the package check phase, because they depend on
ACLs and users, which are not available in the sandbox.
This commit is contained in:
Silvan Mosberger
2025-11-17 15:57:18 +01:00
parent df1bffef9f
commit 1bb71bca9f
2 changed files with 34 additions and 0 deletions
+33
View File
@@ -0,0 +1,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
'';
})
)
+1
View File
@@ -188,6 +188,7 @@ in
# keep-sorted start case=no numeric=no block=yes
_3proxy = runTest ./3proxy.nix;
aaaaxy = runTest ./aaaaxy.nix;
acl = pkgs.callPackage ./acl.nix { };
acme = import ./acme/default.nix {
inherit runTest;
inherit (pkgs) lib;