Skip to content

Commit

Permalink
zfs-ng: vm-snapshot testing
Browse files Browse the repository at this point in the history
  • Loading branch information
ydirson committed Mar 22, 2024
1 parent 9dc1a15 commit 50acc91
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions tests/storage/zfs_ng/test_zfs_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,73 @@ def test_snapshot(self, vm_on_zfs_sr):
vm.test_snapshot_on_running_vm()
vm.shutdown(verify=True)

@pytest.mark.small_vm
@pytest.mark.big_vm
def test_snapshots(self, vm_on_zfs_sr):
vm = vm_on_zfs_sr
vm.start()
vm.wait_for_os_booted()
vm.wait_for_vm_running_and_ssh_up()

snap1, snap2, snap3 = None, None, None
snap1 = vm.snapshot()
vm.ssh_touch_file(f"/{snap1.uuid}")
snap2 = vm.snapshot()
vm.ssh_touch_file(f"/{snap2.uuid}")
snap3 = vm.snapshot()

# we are in "snap3" state, check all 6 "from A to B"
# combinations
snap1.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test ! -f /{snap1.uuid}"])
vm.ssh([f"test ! -f /{snap2.uuid}"])
snap2.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test -f /{snap1.uuid}"])
vm.ssh([f"test ! -f /{snap2.uuid}"])
snap3.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test -f /{snap1.uuid}"])
vm.ssh([f"test -f /{snap2.uuid}"])
snap2.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test -f /{snap1.uuid}"])
vm.ssh([f"test ! -f /{snap2.uuid}"])
snap1.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test ! -f /{snap1.uuid}"])
vm.ssh([f"test ! -f /{snap2.uuid}"])
snap3.revert()
vm.start()
vm.wait_for_vm_running_and_ssh_up()
logging.info("Check files state")
vm.ssh([f"test -f /{snap1.uuid}"])
vm.ssh([f"test -f /{snap2.uuid}"])

#snap1.destroy(verify=True)
#snap2.destroy(verify=True)
#snap3.destroy(verify=True)

def get_messages(self, name):
args = {
'obj-uuid': self.uuid,
'name': name,
'params': 'uuid',
}

lines = self.host.xe('message-list', args).splitlines()

# *** tests with reboots (longer tests).

@pytest.mark.reboot
Expand Down

0 comments on commit 50acc91

Please sign in to comment.