Skip to content

Commit f7fad45

Browse files
committed
implement cbt_tests on lvmohba sr
Signed-off-by: Goulven Riou <goulven.riou@vates.tech>
1 parent 283c6d0 commit f7fad45

1 file changed

Lines changed: 67 additions & 1 deletion

File tree

tests/storage/lvmohba/test_lvmohba_sr.py

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,18 @@
22

33
from lib.commands import SSHCommandFailed
44
from lib.common import Defer, vm_image, wait_for
5+
from lib.host import Host
56
from lib.sr import SR
6-
from lib.vdi import VDI, ImageFormat
7+
from lib.vdi import VDI
78
from lib.vm import VM
89
from tests.storage import (
910
MAX_VDI_SIZE,
11+
CBTTest,
1012
CoalesceOperation,
1113
ImageFormat,
1214
XVACompression,
15+
assert_cbt_log_does_not_exist_lvm_sr,
16+
assert_cbt_log_exists_lvm_sr,
1317
coalesce_integrity,
1418
full_vdi_write,
1519
vdi_export_import,
@@ -21,6 +25,7 @@
2125
# - one XCP-ng host >= 8.2
2226
# - a valid lvmohba config
2327

28+
2429
class TestLVMOHBASRCreateDestroy:
2530
"""
2631
Tests that do not use fixtures that setup the SR or import VMs,
@@ -39,6 +44,7 @@ def test_create_and_destroy_sr(self, host, lvmohba_device_config, image_format:
3944
vm.destroy(verify=True)
4045
sr.destroy(verify=True)
4146

47+
4248
@pytest.mark.usefixtures('image_format')
4349
@pytest.mark.usefixtures("lvmohba_sr")
4450
@pytest.mark.thick_provisioned
@@ -111,3 +117,63 @@ def test_reboot(self, host, lvmohba_sr, vm_on_lvmohba_sr):
111117
vm.shutdown(verify=True)
112118

113119
# *** End of tests with reboots
120+
121+
122+
class TestLVMoHBACBT(CBTTest):
123+
"""Test CBT functionality on LVMOHBA SR"""
124+
125+
@staticmethod
126+
def assert_cbt_log_exists(host: Host, sr: SR, vdi: VDI) -> None:
127+
assert_cbt_log_exists_lvm_sr(host, sr, vdi)
128+
129+
@staticmethod
130+
def assert_cbt_log_does_not_exist(host: Host, sr: SR, vdi: VDI) -> None:
131+
assert_cbt_log_does_not_exist_lvm_sr(host, sr, vdi)
132+
133+
def test_enable_disable_cbt(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
134+
self._test_enable_disable_cbt(host, lvmohba_sr, vdi_on_lvmohba_sr)
135+
136+
def test_cbt_log_creation(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
137+
self._test_cbt_log_creation(host, lvmohba_sr, vdi_on_lvmohba_sr)
138+
139+
def test_snapshot_with_cbt(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
140+
self._test_snapshot_with_cbt(host, lvmohba_sr, vdi_on_lvmohba_sr)
141+
142+
@pytest.mark.small_vm
143+
def test_changed_blocks_tracking(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI,
144+
vm_on_lvmohba_sr: VM) -> None:
145+
self._test_changed_blocks_tracking(host, lvmohba_sr, vdi_on_lvmohba_sr, vm_on_lvmohba_sr)
146+
147+
@pytest.mark.small_vm
148+
def test_cbt_after_coalesce(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI,
149+
vm_on_lvmohba_sr: VM) -> None:
150+
self._test_cbt_after_coalesce(host, lvmohba_sr, vdi_on_lvmohba_sr, vm_on_lvmohba_sr)
151+
152+
@pytest.mark.small_vm
153+
def test_incremental_snap_scenario(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI,
154+
vm_on_lvmohba_sr: VM) -> None:
155+
self._test_incremental_snap_scenario(host, lvmohba_sr, vdi_on_lvmohba_sr, vm_on_lvmohba_sr)
156+
157+
def test_disable_cbt_removes_log(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
158+
self._test_disable_cbt_removes_log(host, lvmohba_sr, vdi_on_lvmohba_sr)
159+
160+
def test_destroy_vdi_removes_cbt_log(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
161+
self._test_destroy_vdi_removes_cbt_log(host, lvmohba_sr, vdi_on_lvmohba_sr)
162+
163+
def test_cbt_persist_after_sr_reboot(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
164+
self._test_cbt_persist_after_sr_reboot(host, lvmohba_sr, vdi_on_lvmohba_sr)
165+
166+
def test_cbt_on_snapshot_chain(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
167+
self._test_cbt_on_snapshot_chain(host, lvmohba_sr, vdi_on_lvmohba_sr)
168+
169+
def test_cbt_parent_disable_does_not_affect_snapshot(self, host: Host, lvmohba_sr: SR,
170+
vdi_on_lvmohba_sr: VDI) -> None:
171+
self._test_cbt_parent_disable_does_not_affect_snapshot(host, lvmohba_sr, vdi_on_lvmohba_sr)
172+
173+
@pytest.mark.small_vm
174+
def test_cbt_bitmap_non_zero_after_write(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI,
175+
vm_on_lvmohba_sr: VM) -> None:
176+
self._test_cbt_bitmap_non_zero_after_write(host, lvmohba_sr, vdi_on_lvmohba_sr, vm_on_lvmohba_sr)
177+
178+
def test_cbt_data_destroy(self, host: Host, lvmohba_sr: SR, vdi_on_lvmohba_sr: VDI) -> None:
179+
self._test_cbt_data_destroy(host, lvmohba_sr, vdi_on_lvmohba_sr)

0 commit comments

Comments
 (0)