From 77a4004df109c5d7a82386fd6080f055a9eba966 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 27 May 2010 12:20:37 +0000 Subject: [PATCH] * The installer test lost the QEMU flags to set up the NIC to talk to the web server somewhere, so put them back in (http://hydra.nixos.org/build/424923). svn path=/nixos/trunk/; revision=22003 --- lib/qemu-flags.nix | 15 +++++++++++++++ lib/test-driver/Machine.pm | 1 + tests/installer.nix | 3 ++- 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 lib/qemu-flags.nix diff --git a/lib/qemu-flags.nix b/lib/qemu-flags.nix new file mode 100644 index 000000000000..05edc1d2cc6c --- /dev/null +++ b/lib/qemu-flags.nix @@ -0,0 +1,15 @@ +# QEMU flags shared between various Nix expressions. + +{ + + qemuNICFlags = nic: net: + "-net nic,vlan=${toString nic},model=virtio " + + # Use 232.0.1. as the multicast address to connect VMs on + # the same vlan, but allow it to be overriden using the + # $QEMU_MCAST_ADDR_ environment variable. The test driver + # sets this variable to prevent collisions between parallel + # builds. + "-net socket,vlan=${toString nic},mcast=" + + "\${QEMU_MCAST_ADDR_${toString net}:-232.0.1.${toString net}:1234} "; + +} diff --git a/lib/test-driver/Machine.pm b/lib/test-driver/Machine.pm index ed43d8d255a4..5ff7bf6cea19 100644 --- a/lib/test-driver/Machine.pm +++ b/lib/test-driver/Machine.pm @@ -34,6 +34,7 @@ sub new { if defined $args->{hda}; $startCommand .= "-cdrom $args->{cdrom} " if defined $args->{cdrom}; + $startCommand .= $args->{qemuFlags} || ""; } my $name = $args->{name}; diff --git a/tests/installer.nix b/tests/installer.nix index 26423cd9d061..883138f17608 100644 --- a/tests/installer.nix +++ b/tests/installer.nix @@ -1,6 +1,7 @@ { pkgs, nixpkgs, system, ... }: with pkgs.lib; +with import ../lib/qemu-flags.nix; let @@ -104,7 +105,7 @@ let '' createDisk("harddisk", 4 * 1024); - my $machine = Machine->new({ hda => "harddisk", cdrom => glob("${iso}/iso/*.iso") }); + my $machine = Machine->new({ hda => "harddisk", cdrom => glob("${iso}/iso/*.iso"), qemuFlags => '${qemuNICFlags 1 1}' }); $machine->start; ${optionalString testChannel ''