Add Kvm start code.
authorJelmer Vernooij <jelmer@samba.org>
Tue, 19 Feb 2008 02:29:03 +0000 (03:29 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Tue, 19 Feb 2008 02:29:03 +0000 (03:29 +0100)
source/selftest/config.mk
source/selftest/target/Kvm.pm

index 7f8f211588ca3489b1f8684f6877d18700178ef8..ff470df5271ede95fcf7ba1f832b14a17a58cab7 100644 (file)
@@ -10,6 +10,9 @@ SELFTEST = $(LD_LIBPATH_OVERRIDE) $(PERL) $(srcdir)/selftest/selftest.pl --prefi
 test:: everything
        $(SELFTEST) $(DEFAULT_TEST_OPTIONS) --immediate $(TESTS)
 
+kvmtest:: everything
+       $(SELFTEST) $(DEFAULT_TEST_OPTIONS) --target=kvm --image=$(KVM_IMAGE)
+
 testone:: everything
        $(SELFTEST) $(DEFAULT_TEST_OPTIONS) --one $(TESTS)
 
index 533fb302d0fcdd69926668fc3ff41280b73f7d4a..efd4fa2f7a0229fc6697974e1c64dcf4a21e23a8 100644 (file)
@@ -40,16 +40,39 @@ sub check_env($$)
        return 1;
 }
 
+sub start($)
+{
+       my ($self) = @_;
+
+       my $pidfile = "kvm.pid";
+
+       system("kvm $ENV{KVM_OPTIONS} -daemonize -pidfile $pidfile -net user -vnc unix:kvm.vnc -snapshot $self->{image}");
+
+       open(PID, $pidfile);
+       $self->{pid} = <PID>;
+       close(PID);
+}
+
 sub setup_env($$$)
 {
        my ($self, $envname, $path) = @_;
 
+       if ($envname eq "dc") {
+               unless (defined($self->{pid})) {
+                       $self->start();
+               }
+       } elsif ($envname eq "member") {
+               return undef;
+       }
+
        die("No implemented yet");
 }
 
 sub stop($)
 {
        my ($self) = @_;
+
+       kill $self->{pid};
 }
 
 1;