From c2941c9f0b8a48e4ab190c087b7f32c64d76aa8e Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 19 Feb 2008 21:51:09 +0100 Subject: Initial work on vde support. (This used to be commit 9b0dcac0bd805c3e1741448167b461c3fa0e33fd) --- source4/selftest/selftest.pl | 2 +- source4/selftest/target/Kvm.pm | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) (limited to 'source4/selftest') diff --git a/source4/selftest/selftest.pl b/source4/selftest/selftest.pl index c17e790f63..996b982e06 100755 --- a/source4/selftest/selftest.pl +++ b/source4/selftest/selftest.pl @@ -452,7 +452,7 @@ if ($opt_target eq "samba4") { if ($opt_socket_wrapper); require target::Kvm; die("No image specified") unless ($opt_image); - $target = new Kvm($opt_image); + $target = new Kvm($opt_image, undef); } sub read_test_regexes($) diff --git a/source4/selftest/target/Kvm.pm b/source4/selftest/target/Kvm.pm index 253f3b53af..3b17a2909c 100644 --- a/source4/selftest/target/Kvm.pm +++ b/source4/selftest/target/Kvm.pm @@ -11,9 +11,10 @@ use FindBin qw($RealBin); use POSIX; sub new($$$$) { - my ($classname, $dc_image) = @_; + my ($classname, $dc_image, $vdesocket) = @_; my $self = { dc_image => $dc_image, + vdesocket => $vdesocket, }; bless $self; return $self; @@ -60,8 +61,10 @@ sub teardown_env($$) kill 9, $envvars->{KVM_PID}; - print "Killing dhcpd instance $envvars->{DHCPD_PID}\n"; - kill 9, $envvars->{DHCPD_PID}; + if (defined($envvars->{DHCPD_PID})) { + print "Killing dhcpd instance $envvars->{DHCPD_PID}\n"; + kill 9, $envvars->{DHCPD_PID}; + } return 0; } @@ -105,11 +108,22 @@ sub start($$$) $opts .= " -loadvm $ENV{KVM_SNAPSHOT}"; } - my ($ifup_script, $dhcpd_pidfile, $ip_address) = $self->write_kvm_ifup($path, "192.168.9"); + my $netopts; + my $dhcp_pid; + my $ip_address; + + if ($self->{vdesocket}) { + $netopts = "vde,socket=$self->{vdesocket}"; + } else { + my $ifup_script, $dhcpd_pidfile; + ($ifup_script, $dhcpd_pidfile, $ip_address) = $self->write_kvm_ifup($path, "192.168.9"); + $netopts = "tap,script=$ifup_script"; + $dhcp_pid = read_pidfile($dhcpd_pidfile); + } - system("kvm -name \"Samba 4 Test Subject\" $opts -monitor unix:$path/kvm.monitor,server,nowait -daemonize -pidfile $pidfile -snapshot $image -net nic -net tap,script=$ifup_script"); + system("kvm -name \"Samba 4 Test Subject\" $opts -monitor unix:$path/kvm.monitor,server,nowait -daemonize -pidfile $pidfile -snapshot $image -net nic -net $netopts"); - return (read_pidfile($pidfile), read_pidfile($dhcpd_pidfile), $ip_address); + return (read_pidfile($pidfile), $dhcp_pid, $ip_address); } sub setup_env($$$) -- cgit