From 2df7436fb32cf7ac871b1143a8270f8cfa16b7e1 Mon Sep 17 00:00:00 2001 From: aszlig Date: Thu, 30 Nov 2017 09:16:49 +0100 Subject: pkgs/sandbox: Add handling for XDG_CACHE_HOME We only handle XDG_DATA_HOME and XDG_CONFIG_HOME, but we've missed XDG_CACHE_HOME. While the latter is used very rarely as it doesn't matter a lot if it ends up within a tmpfs anyway. However if the cache directory gets pretty large we might run out of space. Not only do we now have proper fallbacks but this also adds tests for all of the XDG environment variables we're using. Signed-off-by: aszlig --- tests/sandbox.nix | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/sandbox.nix b/tests/sandbox.nix index 9c247da2..9a1b4a3a 100644 --- a/tests/sandbox.nix +++ b/tests/sandbox.nix @@ -15,15 +15,27 @@ environment.systemPackages = let testProgram = pkgs.writeScriptBin "test-sandbox" '' #!${pkgs.stdenv.shell} -ex + + # Should fail because we can't access the host's PATH ! echo foo | grep -qF foo + export PATH=/run/baz-test-sandbox/bin echo foo > /home/foo/existing/bar test ! -d /home/foo/nonexisting /run/foo-test-sandbox/bin/hello echo aaa | /run/bar-test-sandbox/bin/sed -e 's/a/b/g' + + echo XDG1 > /home/foo/.local/share/xdg/1 + echo XDG2 > /home/foo/.config/xdg/2 + echo XDG3 > /home/foo/.cache/xdg/3 ''; in lib.singleton (pkgs.vuizvui.buildSandbox testProgram { - paths.required = [ "/home/foo/existing" ]; + paths.required = [ + "/home/foo/existing" + "$XDG_DATA_HOME/xdg" + "$XDG_CONFIG_HOME/xdg" + "$XDG_CACHE_HOME/xdg" + ]; paths.wanted = [ "/home/foo/nonexisting" ]; paths.runtimeVars = [ "COLLECT_ME" ]; }); @@ -37,5 +49,9 @@ $machine->succeed('test -d /home/foo/existing'); $machine->succeed('grep -qF foo /home/foo/existing/bar'); $machine->fail('test -d /home/foo/nonexisting'); + + $machine->succeed('grep -qF XDG1 /home/foo/.local/share/xdg/1'); + $machine->succeed('grep -qF XDG2 /home/foo/.config/xdg/2'); + $machine->succeed('grep -qF XDG3 /home/foo/.cache/xdg/3'); ''; } -- cgit 1.4.1