Module: tools Branch: master Commit: d07df9daf9e3e2bc1ec27bd5140f9c99245f6088 URL: http://source.winehq.org/git/tools.git/?a=commit;h=d07df9daf9e3e2bc1ec27bd51...
Author: Francois Gouget fgouget@codeweavers.com Date: Fri Sep 27 20:01:22 2013 +0200
testbot/VMs: Shut down VMs before reverting them.
This is a workaround for a bug in some QEmu/KVM versions.
---
testbot/bin/RevertVM.pl | 11 +++++++++++ testbot/lib/WineTestBot/VMs.pm | 7 ++++--- 2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/testbot/bin/RevertVM.pl b/testbot/bin/RevertVM.pl index acd3b5b..5f98191 100755 --- a/testbot/bin/RevertVM.pl +++ b/testbot/bin/RevertVM.pl @@ -97,6 +97,17 @@ if (defined($ErrMessage)) FatalError "Can't change status for VM $VMKey: $ErrMessage", $VM; }
+if ($VM->IsPoweredOn()) +{ + # Some QEmu/KVM versions are buggy and cannot revert a running VM + $ErrMessage = $VM->PowerOff(1); + if (defined $ErrMessage) + { + LogMsg "Could not shut down $VMKey: $ErrMessage\n"; + LogMsg "Trying the revert anyway\n"; + } +} + $ErrMessage = $VM->RevertToSnapshot($VM->IdleSnapshot); if (defined($ErrMessage)) { diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm index c92b534..37d1c4f 100644 --- a/testbot/lib/WineTestBot/VMs.pm +++ b/testbot/lib/WineTestBot/VMs.pm @@ -362,9 +362,9 @@ sub PowerOn return $self->UpdateStatus($Domain); }
-sub PowerOff +sub PowerOff($$) { - my ($self) = @_; + my ($self, $NoStatus) = @_;
my ($ErrMessage, $Domain) = $self->_GetDomain(); return $ErrMessage if (defined $ErrMessage); @@ -372,7 +372,8 @@ sub PowerOff eval { $Domain->destroy() }; return $@->message() if ($@);
- return $self->UpdateStatus($Domain); + return $self->UpdateStatus($Domain) if (!$NoStatus); + return undef; }
sub GetAgent($)