From 20487112ed9cbc3fe0d5b92e0b861a7c09a33735 Mon Sep 17 00:00:00 2001 From: aszlig Date: Wed, 11 Oct 2017 20:01:45 +0200 Subject: 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 --- nixos/lib/testing.nix | 1 + 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" +'' -- cgit 1.4.1