about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-16 11:36:09 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-10-16 11:37:38 +0200
commit6dafee8d6704957e123de1b51d3e406848f4aac8 (patch)
treea91bacfa73d9fd189d82fa9030b12a8af7a8dec0
parente0db0aaa4d4a9169b5e1f4d1d6e23d6dffc5d0ab (diff)
downloadnixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar.gz
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar.bz2
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar.lz
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar.xz
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.tar.zst
nixlib-6dafee8d6704957e123de1b51d3e406848f4aac8.zip
Fix runInMachine
It requires a writable /nix/store to store the build result.  Also,
wait until we've reached multi-user.target before doing the build, and
do a sync at the end to ensure all data to $out is properly written.

http://hydra.nixos.org/build/6496716
-rw-r--r--nixos/lib/testing.nix7
-rw-r--r--nixos/modules/virtualisation/qemu-vm.nix3
-rw-r--r--nixos/tests/run-in-machine.nix6
3 files changed, 9 insertions, 7 deletions
diff --git a/nixos/lib/testing.nix b/nixos/lib/testing.nix
index 7be0903ed3a8..3407229e921a 100644
--- a/nixos/lib/testing.nix
+++ b/nixos/lib/testing.nix
@@ -176,7 +176,10 @@ rec {
     let
       vm = buildVM { }
         [ machine
-          { key = "hostname"; networking.hostName = "client"; }
+          { key = "run-in-machine";
+            networking.hostName = "client";
+            nix.readOnlyStore = false;
+          }
         ];
 
       buildrunner = writeText "vm-build" ''
@@ -192,9 +195,11 @@ rec {
 
       testscript = ''
         startAll;
+        $client->waitForUnit("multi-user.target");
         ${preBuild}
         $client->succeed("env -i ${pkgs.bash}/bin/bash ${buildrunner} /tmp/xchg/saved-env >&2");
         ${postBuild}
+        $client->succeed("sync"); # flush all data before pulling the plug
       '';
 
       vmRunCommand = writeText "vm-run" ''
diff --git a/nixos/modules/virtualisation/qemu-vm.nix b/nixos/modules/virtualisation/qemu-vm.nix
index 5b521a455470..708b462e0e5d 100644
--- a/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixos/modules/virtualisation/qemu-vm.nix
@@ -295,7 +295,7 @@ in
 
     boot.initrd.postMountCommands =
       ''
-        # Mark this as a NixOS machinex.
+        # Mark this as a NixOS machine.
         mkdir -p $targetRoot/etc
         echo -n > $targetRoot/etc/NIXOS
 
@@ -303,7 +303,6 @@ in
         chmod 1777 $targetRoot/tmp
 
         mkdir -p $targetRoot/boot
-        mount -o remount,ro $targetRoot/nix/store
         ${optionalString cfg.writableStore ''
           mkdir -p /unionfs-chroot/ro-store
           mount --rbind $targetRoot/nix/store /unionfs-chroot/ro-store
diff --git a/nixos/tests/run-in-machine.nix b/nixos/tests/run-in-machine.nix
index 75bd161ec9ef..8efe26c17082 100644
--- a/nixos/tests/run-in-machine.nix
+++ b/nixos/tests/run-in-machine.nix
@@ -1,10 +1,8 @@
-{ nixpkgs ? <nixpkgs>
-, system ? builtins.currentSystem
-}:
+{ system ? builtins.currentSystem }:
 
 with import ../lib/testing.nix { inherit system; };
 
 runInMachine {
-  drv = (import nixpkgs { inherit system; }).aterm;
+  drv = pkgs.patchelf;
   machine = { config, pkgs, ... }: { services.sshd.enable = true; };
 }