On 08/26/2011 08:16 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange(a)redhat.com>
The test case validates the core lifecycle operations on
persistent domains with snapshots. A persistent domain
should allow snapshots to be created& deleted while both
running and shutoff.
This test is good, but could use more coverage - you need to test the
following 9 transitions, to be sure we covered everything (because my
series proved we had bugs in multiple of these transitions):
current -> snapshot state
------------------
shutoff -> shutoff
shutoff -> paused (0.9.4 buggy - it temporarily ran the vcpus, rather
than restoring to the exact state where the paused snapshot was created)
shutoff -> running
paused -> shutoff (0.9.4 buggy with newer qemu, because it tried to
use qemu -loadvm with no vm state)
paused -> paused
paused -> running (0.9.4 buggy - it left the restored domain paused)
running -> shutoff (0.9.4 buggy with newer qemu, because it tried to
use qemu -loadvm with no vm state)
running -> paused
running -> running
It becomes 12 transitions when you add disk snapshots into the series,
and once I implement VIR_DOMAIN_SNAPSHOT_REVERT_{START,PAUSED,FORCE}, we
have even more combinations.
It should forbid undefine of the
domain when it has snapshots present.
---
scripts/domain-snapshot/080-persistent-snapshot.t | 112 +++++++++++++++++++++
1 files changed, 112 insertions(+), 0 deletions(-)
create mode 100644 scripts/domain-snapshot/080-persistent-snapshot.t
+my $domss1;
+my $domss2;
+diag "Taking a snapshot while inactive";
+ok_domain_snapshot(sub { $domss2 = $dom->create_snapshot($ss1xml)}, "created
domain snapshot ss1");
+
+diag "Starting domain";
+lives_ok(sub { $dom->create }, "started domain");
+
+diag "Taking a snapshot while active";
+ok_domain_snapshot(sub { $domss2 = $dom->create_snapshot($ss2xml)}, "created
domain snapshot ss2");
This only creates 2 of the 3 needed snapshots to fully exercise the
possible 9 transitions.
Also, I don't see any tests of reverting to a snapshot state - you
appear to be testing the management of creation and deletion of
snapshots, but not reversion.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org