diff --git a/tests/functional/build.sh b/tests/functional/build.sh index 5396a465f..9906803c9 100755 --- a/tests/functional/build.sh +++ b/tests/functional/build.sh @@ -152,6 +152,11 @@ nix build --impure -f multiple-outputs.nix --json e --no-link \ (.outputs | keys == ["a_a", "b"])) ' +# Make sure that `mkdir $HOME fails with a "Permission denied" error` +out="$(nix build -f mkdir-home-failing.nix -L 2>&1)" && status=0 || status=$? +test "$status" = 1 +<<<"$out" grepQuiet -E "Permission denied" + # Make sure that `--stdin` works and does not apply any defaults printf "" | nix build --no-link --stdin --json | jq --exit-status '. == []' printf "%s\n" "$drv^*" | nix build --no-link --stdin --json | jq --exit-status '.[0]|has("drvPath")' diff --git a/tests/functional/mkdir-home-failing.nix b/tests/functional/mkdir-home-failing.nix new file mode 100644 index 000000000..8f0ac39ba --- /dev/null +++ b/tests/functional/mkdir-home-failing.nix @@ -0,0 +1,8 @@ +with import ./config.nix; +mkDerivation { + name = "mkdir-home-no-permission"; + builder = builtins.toFile "builder.sh" + '' + mkdir $HOME + ''; +}