
On 08/26/2011 08:16 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange@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@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org