diff options
author | aszlig <aszlig@redmoonstudios.org> | 2017-10-11 20:01:45 +0200 |
---|---|---|
committer | aszlig <aszlig@redmoonstudios.org> | 2017-10-11 20:08:11 +0200 |
commit | 20487112ed9cbc3fe0d5b92e0b861a7c09a33735 (patch) | |
tree | 17f6783ab4b6a72811b63dcd055798883d89dccc | |
parent | 5dda1324be421c1a2afd5a559a87f97691287003 (diff) | |
download | nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar.gz nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar.bz2 nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar.lz nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar.xz nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.tar.zst nixlib-20487112ed9cbc3fe0d5b92e0b861a7c09a33735.zip |
nixos: Fix output path generation of runInMachine
Regression introduced by a02bb00156086b45e68c1112008db506734f8649. The fix is done by disabling writableStore, because the latter will set up an overlayfs on the Nix store within the VM, which in turn will discard all the outputs of the resulting output path. However in runInMachine we actually *want* the contents of the generated path and also don't want a writable store within the VM (except of course for $out, which is writable anyway). I've added a small regression test to verifify the output in nixos/tests/run-in-machine.nix to make sure this won't break again in the future. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
-rw-r--r-- | nixos/lib/testing.nix | 1 | ||||
-rw-r--r-- | nixos/tests/run-in-machine.nix | 17 |
2 files changed, 14 insertions, 4 deletions
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix index 58c447c76db6..9339ba78ff0c 100644 --- a/nixos/lib/testing.nix +++ b/nixos/lib/testing.nix @@ -149,6 +149,7 @@ rec { { key = "run-in-machine"; networking.hostName = "client"; nix.readOnlyStore = false; + virtualisation.writableStore = false; } ]; diff --git a/nixos/tests/run-in-machine.nix b/nixos/tests/run-in-machine.nix index d1102f8d4073..a6dfece44a92 100644 --- a/nixos/tests/run-in-machine.nix +++ b/nixos/tests/run-in-machine.nix @@ -2,7 +2,16 @@ with import ../lib/testing.nix { inherit system; }; -runInMachine { - drv = pkgs.hello; - machine = { config, pkgs, ... }: { /* services.sshd.enable = true; */ }; -} +let + output = runInMachine { + drv = pkgs.hello; + machine = { config, pkgs, ... }: { /* services.sshd.enable = true; */ }; + }; +in pkgs.runCommand "verify-output" { inherit output; } '' + if [ ! -e "$output/bin/hello" ]; then + echo "Derivation built using runInMachine produced incorrect output:" >&2 + ls -laR "$output" >&2 + exit 1 + fi + "$output/bin/hello" > "$out" +'' |