Skip to content

Commit 28b673a

Browse files
committed
implement cbt_tests on lvmSR
Signed-off-by: Goulven Riou <goulven.riou@vates.tech>
1 parent 8a1bf02 commit 28b673a

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

tests/storage/lvm/test_lvm_sr.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
from lib.vm import VM
1414
from tests.storage import (
1515
MAX_VDI_SIZE,
16+
CBTTest,
1617
CoalesceOperation,
1718
ImageFormat,
1819
XVACompression,
20+
assert_cbt_log_does_not_exist_lvm_sr,
21+
assert_cbt_log_exists_lvm_sr,
1922
coalesce_integrity,
2023
full_vdi_write,
2124
try_to_create_sr_with_missing_device,
@@ -161,3 +164,59 @@ def test_reboot(self, host: Host, lvm_sr: SR, vm_on_lvm_sr: VM) -> None:
161164
vm.shutdown(verify=True)
162165

163166
# *** End of tests with reboots
167+
168+
169+
class TestLVMCBT(CBTTest):
170+
"""Test CBT functionality on LVM SR"""
171+
172+
@staticmethod
173+
def assert_cbt_log_exists(host: Host, sr: SR, vdi: VDI) -> None:
174+
assert_cbt_log_exists_lvm_sr(host, sr, vdi)
175+
176+
@staticmethod
177+
def assert_cbt_log_does_not_exist(host: Host, sr: SR, vdi: VDI) -> None:
178+
assert_cbt_log_does_not_exist_lvm_sr(host, sr, vdi)
179+
180+
def test_enable_disable_cbt(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
181+
self._test_enable_disable_cbt(host, lvm_sr, vdi_on_lvm_sr)
182+
183+
def test_cbt_log_creation(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
184+
self._test_cbt_log_creation(host, lvm_sr, vdi_on_lvm_sr)
185+
186+
def test_snapshot_with_cbt(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
187+
self._test_snapshot_with_cbt(host, lvm_sr, vdi_on_lvm_sr)
188+
189+
@pytest.mark.small_vm
190+
def test_changed_blocks_tracking(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI, vm_on_lvm_sr: VM) -> None:
191+
self._test_changed_blocks_tracking(host, lvm_sr, vdi_on_lvm_sr, vm_on_lvm_sr)
192+
193+
@pytest.mark.small_vm
194+
def test_cbt_after_coalesce(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI, vm_on_lvm_sr: VM) -> None:
195+
self._test_cbt_after_coalesce(host, lvm_sr, vdi_on_lvm_sr, vm_on_lvm_sr)
196+
197+
@pytest.mark.small_vm
198+
def test_incremental_snap_scenario(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI, vm_on_lvm_sr: VM) -> None:
199+
self._test_incremental_snap_scenario(host, lvm_sr, vdi_on_lvm_sr, vm_on_lvm_sr)
200+
201+
def test_disable_cbt_removes_log(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
202+
self._test_disable_cbt_removes_log(host, lvm_sr, vdi_on_lvm_sr)
203+
204+
def test_destroy_vdi_removes_cbt_log(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
205+
self._test_destroy_vdi_removes_cbt_log(host, lvm_sr, vdi_on_lvm_sr)
206+
207+
def test_cbt_persist_after_sr_reboot(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
208+
self._test_cbt_persist_after_sr_reboot(host, lvm_sr, vdi_on_lvm_sr)
209+
210+
def test_cbt_on_snapshot_chain(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
211+
self._test_cbt_on_snapshot_chain(host, lvm_sr, vdi_on_lvm_sr)
212+
213+
def test_cbt_parent_disable_does_not_affect_snapshot(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
214+
self._test_cbt_parent_disable_does_not_affect_snapshot(host, lvm_sr, vdi_on_lvm_sr)
215+
216+
@pytest.mark.small_vm
217+
def test_cbt_bitmap_non_zero_after_write(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI,
218+
vm_on_lvm_sr: VM) -> None:
219+
self._test_cbt_bitmap_non_zero_after_write(host, lvm_sr, vdi_on_lvm_sr, vm_on_lvm_sr)
220+
221+
def test_cbt_data_destroy(self, host: Host, lvm_sr: SR, vdi_on_lvm_sr: VDI) -> None:
222+
self._test_cbt_data_destroy(host, lvm_sr, vdi_on_lvm_sr)

0 commit comments

Comments
 (0)