lix/tests/nixos/symlink-resolvconf.nix
Ilya K b469c6509b libstore/build: just copy the magic /etc files into the sandbox
Saves us a bunch of thinking about how to handle symlinks, and prevents
the DNS config from changing on the fly under the build, which may or may
not be a good thing?

Change-Id: I071e6ae7e220884690b788d94f480866f428db71
2024-04-13 12:43:19 +03:00

29 lines
826 B
Nix

{ pkgs, ... }:
let
checkResolvconfInSandbox = pkgs.runCommand "resolvconf-works-in-sandbox" {
# must be an FOD to have a resolv.conf in the first place
outputHash = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
outputHashAlgo = "sha256";
outputHashType = "flat";
} ''
cat /etc/resolv.conf
touch $out
'';
in {
name = "symlink-resolvconf";
nodes.machine = {
# Enabling resolved makes /etc/resolv.conf a symlink to /etc/static/resolv.conf, which is itself a symlink to /run.
# If this works, most other things probably will too.
services.resolved.enable = true;
virtualisation.additionalPaths = [checkResolvconfInSandbox.drvPath];
};
testScript = { nodes }: ''
start_all()
machine.succeed('nix-build --check ${checkResolvconfInSandbox.drvPath}')
'';
}