Skip to content

Commit c9995b4

Browse files
committed
implement cbt_tests on LVMoISCSI sr
Signed-off-by: Goulven Riou <goulven.riou@vates.tech>
1 parent 0bfca94 commit c9995b4

1 file changed

Lines changed: 66 additions & 1 deletion

File tree

tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
from lib.common import Defer, vm_image, wait_for
55
from lib.host import Host
66
from lib.sr import SR
7-
from lib.vdi import VDI, ImageFormat
7+
from lib.vdi import VDI
88
from lib.vm import VM
99
from tests.storage import (
1010
MAX_VDI_SIZE,
11+
CBTTest,
1112
CoalesceOperation,
1213
ImageFormat,
1314
XVACompression,
15+
assert_cbt_log_does_not_exist_lvm_sr,
16+
assert_cbt_log_exists_lvm_sr,
1417
coalesce_integrity,
1518
full_vdi_write,
1619
vdi_export_import,
@@ -22,6 +25,7 @@
2225
# - one XCP-ng host >= 8.2
2326
# - a valid lvmoiscsi config
2427

28+
2529
class TestLVMOISCSISRCreateDestroy:
2630
"""
2731
Tests that do not use fixtures that setup the SR or import VMs,
@@ -41,6 +45,7 @@ def test_create_and_destroy_sr(self, host: Host, lvmoiscsi_device_config: dict[s
4145
vm.destroy(verify=True)
4246
sr.destroy(verify=True)
4347

48+
4449
@pytest.mark.usefixtures('image_format')
4550
@pytest.mark.usefixtures("lvmoiscsi_sr")
4651
@pytest.mark.thick_provisioned
@@ -114,3 +119,63 @@ def test_reboot(self, host: Host, lvmoiscsi_sr: SR, vm_on_lvmoiscsi_sr: VM) -> N
114119
vm.shutdown(verify=True)
115120

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

0 commit comments

Comments
 (0)