[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 2/3] Add test for persistent domain snapshot management



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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]