From a4516ec98a4b89c41f6669d290b4791bcab692fc Mon Sep 17 00:00:00 2001 From: Rob Vermaas Date: Thu, 29 Apr 2010 12:45:22 +0000 Subject: [PATCH] workaround for some fs problems experienced by some tests of webdsl/crawljax. also added require argument to runinmachinewithx function svn path=/nixos/trunk/; revision=21423 --- lib/testing.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/testing.nix b/lib/testing.nix index ca0b7297251..3a33ca69f08 100644 --- a/lib/testing.nix +++ b/lib/testing.nix @@ -104,15 +104,29 @@ rec { , machine , preBuild ? "" , postBuild ? "" + , ... }: let vms = buildVirtualNetwork { nodes = { client = machine; } ; }; + # ugly workaround, until we figure out why some fs actions work properly inside + # the vm. (e.g. unlink gives access denied over smb in qemu). note that the function + # now only works for derivations that lead to a directory in the store, not a file. buildrunner = writeText "vm-build" '' source $1 + oldout=$out + out=$TMPDIR$out + ${coreutils}/bin/mkdir -p $out + ${coreutils}/bin/mkdir -p $oldout + ${coreutils}/bin/ln -s $out $oldout + ${coreutils}/bin/mkdir -p $TMPDIR exec $origBuilder $origArgs + + ${coreutils}/bin/rm -v $oldout + ${coreutils}/bin/cp -Rv $out/* $oldout/ + out=$oldout ''; testscript = '' @@ -139,11 +153,12 @@ rec { origBuilder = attrs.builder; }); - runInMachineWithX = args : + runInMachineWithX = { require ? [], ...}@args : let client = { config, pkgs, ... }: { + inherit require; virtualisation.memorySize = 1024; services.xserver.enable = true; services.xserver.displayManager.slim.enable = false;