diff --git a/tests/storage/lvm/test_lvm_sr.py b/tests/storage/lvm/test_lvm_sr.py index e7e602a25..b6ae4f0b6 100644 --- a/tests/storage/lvm/test_lvm_sr.py +++ b/tests/storage/lvm/test_lvm_sr.py @@ -23,6 +23,12 @@ vdi_is_open, xva_export_import, ) +from tests.storage.storage import ( + check_vdi_revert, + check_vdi_revert_cbt, + check_vdi_revert_journal, + check_vdi_revert_journal_cbt, +) # Requirements: # - one XCP-ng host with an additional unused disk for the SR @@ -150,6 +156,34 @@ def test_vdi_export_import(self, storage_test_vm: VM, lvm_sr: SR, image_format: defer: Defer) -> None: vdi_export_import(storage_test_vm, lvm_sr, image_format, temp_large_dir, defer) + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert(self, vm_on_lvm_sr: VM, defer: Defer) -> None: + check_vdi_revert(defer, vm_on_lvm_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_cbt(self, vm_on_lvm_sr: VM, defer: Defer) -> None: + check_vdi_revert_cbt(defer, vm_on_lvm_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_journal_cbt(self, vm_on_lvm_sr: VM, defer: Defer, exit_on_fistpoint: None): + check_vdi_revert_journal_cbt(defer, vm_on_lvm_sr, "LVM_revert_create_src") + + @pytest.mark.small_vm + @pytest.mark.big_vm + @pytest.mark.parametrize( + "fistpoint", + [ + "LVM_revert_create_insert", + "LVM_revert_create_src", + "LVM_revert_create_dest", + ] + ) + def test_revert_journal(self, vm_on_lvm_sr: VM, defer: Defer, exit_on_fistpoint: None, fistpoint: str): + check_vdi_revert_journal(defer, vm_on_lvm_sr, fistpoint) + # *** tests with reboots (longer tests). @pytest.mark.reboot diff --git a/tests/storage/lvmohba/test_lvmohba_sr.py b/tests/storage/lvmohba/test_lvmohba_sr.py index 3ef9585f8..440047f64 100644 --- a/tests/storage/lvmohba/test_lvmohba_sr.py +++ b/tests/storage/lvmohba/test_lvmohba_sr.py @@ -2,6 +2,7 @@ from lib.commands import SSHCommandFailed from lib.common import Defer, vm_image, wait_for +from lib.host import Host from lib.sr import SR from lib.vdi import VDI, ImageFormat from lib.vm import VM @@ -16,6 +17,13 @@ vdi_is_open, xva_export_import, ) +from tests.storage.storage import ( + check_critical_journal_revert, + check_vdi_revert, + check_vdi_revert_cbt, + check_vdi_revert_journal, + check_vdi_revert_journal_cbt, +) # Requirements: # - one XCP-ng host >= 8.2 @@ -82,6 +90,43 @@ def test_vdi_export_import(self, storage_test_vm: VM, lvmohba_sr: SR, image_form temp_large_dir: str, defer: Defer): vdi_export_import(storage_test_vm, lvmohba_sr, image_format, temp_large_dir, defer) + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert(self, vm_on_lvmohba_sr: VM, defer: Defer) -> None: + check_vdi_revert(defer, vm_on_lvmohba_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_cbt(self, vm_on_lvmohba_sr: VM, defer: Defer) -> None: + check_vdi_revert_cbt(defer, vm_on_lvmohba_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_journal_cbt(self, vm_on_lvmohba_sr: VM, defer: Defer, exit_on_fistpoint: None): + check_vdi_revert_journal_cbt( + defer, vm_on_lvmohba_sr, "LVM_revert_create_src", vm_on_lvmohba_sr.host.pool.master + ) + + @pytest.mark.small_vm + @pytest.mark.big_vm + @pytest.mark.parametrize( + "fistpoint", + [ + "LVM_revert_create_insert", + "LVM_revert_create_src", + "LVM_revert_create_dest", + ] + ) + def test_revert_journal(self, vm_on_lvmohba_sr: VM, defer: Defer, exit_on_fistpoint: None, fistpoint: str): + check_vdi_revert_journal(defer, vm_on_lvmohba_sr, fistpoint, vm_on_lvmohba_sr.host.pool.master) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_critical_journal_revert( + self, vm_on_lvmohba_sr: VM, defer: Defer, exit_on_fistpoint: None, hostA2: Host + ) -> None: + check_critical_journal_revert(defer, vm_on_lvmohba_sr, hostA2, "LVM_revert_create_src") + # *** tests with reboots (longer tests). @pytest.mark.reboot diff --git a/tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py b/tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py index a2d4402d0..40333f276 100644 --- a/tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py +++ b/tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py @@ -17,6 +17,13 @@ vdi_is_open, xva_export_import, ) +from tests.storage.storage import ( + check_critical_journal_revert, + check_vdi_revert, + check_vdi_revert_cbt, + check_vdi_revert_journal, + check_vdi_revert_journal_cbt, +) # Requirements: # - one XCP-ng host >= 8.2 @@ -84,6 +91,43 @@ def test_vdi_export_import(self, storage_test_vm: VM, lvmoiscsi_sr: SR, image_fo temp_large_dir: str, defer: Defer) -> None: vdi_export_import(storage_test_vm, lvmoiscsi_sr, image_format, temp_large_dir, defer) + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert(self, vm_on_lvmoiscsi_sr: VM, defer: Defer) -> None: + check_vdi_revert(defer, vm_on_lvmoiscsi_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_cbt(self, vm_on_lvmoiscsi_sr: VM, defer: Defer) -> None: + check_vdi_revert_cbt(defer, vm_on_lvmoiscsi_sr) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_revert_journal_cbt(self, vm_on_lvmoiscsi_sr: VM, defer: Defer, exit_on_fistpoint: None): + check_vdi_revert_journal_cbt( + defer, vm_on_lvmoiscsi_sr, "LVM_revert_create_src", vm_on_lvmoiscsi_sr.host.pool.master + ) + + @pytest.mark.small_vm + @pytest.mark.big_vm + @pytest.mark.parametrize( + "fistpoint", + [ + "LVM_revert_create_insert", + "LVM_revert_create_src", + "LVM_revert_create_dest", + ] + ) + def test_revert_journal(self, vm_on_lvmoiscsi_sr: VM, defer: Defer, exit_on_fistpoint: None, fistpoint: str): + check_vdi_revert_journal(defer, vm_on_lvmoiscsi_sr, fistpoint, vm_on_lvmoiscsi_sr.host.pool.master) + + @pytest.mark.small_vm + @pytest.mark.big_vm + def test_critical_journal_revert( + self, vm_on_lvmoiscsi_sr: VM, defer: Defer, exit_on_fistpoint: None, hostA2: Host + ) -> None: + check_critical_journal_revert(defer, vm_on_lvmoiscsi_sr, hostA2, "LVM_revert_create_src") + # *** tests with reboots (longer tests). @pytest.mark.reboot