Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions jobs.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,62 @@ class JobData(TypedDict):
"markers": "(small_vm or no_vm) and not reboot and not quicktest and not unused_4k_disks",
"name_filter": "not migration and not linstor",
},
"storage-main-large-thin": {
"description":
"same as storage-main with 3TiB VDIs, no large gzip XVAs creation and no test requiring 3TiB allocation",
"requirements": [
"A pool with at least 3 hosts.",
"An additional free disk on every host.",
"Configuration in data.py for each remote SR that will be tested.",
"A small VM that can be imported on the SRs.",
],
"nb_pools": 1,
"params": {
"--vm": "single/small_vm",
"--volume-size": "3TiB",
},
"paths": ["tests/storage"],
"markers": "(small_vm or no_vm) and not reboot and not quicktest and not unused_4k_disks"
" and not thick_provisioned and not disk_throughput_intensive",
"name_filter": "not migration and not linstor and not gzip",
},
"storage-main-large-thick": {
"description":
"same as storage-main with 3TiB VDIs, no gzip XVAs and tests requiring 3TiB allocation",
"requirements": [
"A pool with at least 3 hosts.",
"An additional free disk on every host.",
"Configuration in data.py for each remote SR that will be tested.",
"A small VM that can be imported on the SRs.",
],
"nb_pools": 1,
"params": {
"--vm": "single/small_vm",
"--volume-size": "3TiB",
},
"paths": ["tests/storage"],
"markers": "(small_vm or no_vm) and not reboot and not quicktest and not unused_4k_disks"
" and not disk_throughput_intensive and thick_provisioned",
"name_filter": "not migration and not linstor and not gzip",
},
"storage-main-large-full-write": {
"description": "storage tests actually writing the full 3TiB volumes",
"requirements": [
"A pool with at least 3 hosts.",
"An additional free disk on every host.",
"Configuration in data.py for each remote SR that will be tested.",
"A small VM that can be imported on the SRs.",
],
"nb_pools": 1,
"params": {
"--vm": "single/small_vm",
"--volume-size": "3TiB",
},
"paths": ["tests/storage"],
"markers": "(small_vm or no_vm) and not reboot and not quicktest and not unused_4k_disks"
" and disk_throughput_intensive",
"name_filter": "not migration and not linstor and not gzip",
},
"storage-migrations": {
"description": "tests migrations with all storage drivers",
"requirements": [
Expand All @@ -118,6 +174,42 @@ class JobData(TypedDict):
"markers": "not unused_4k_disks",
"name_filter": "migration and not linstor",
},
"storage-migrations-large-thin": {
"description": "same as storage-migrations with 3TiB VDIs, and no test requiring 3TiB allocation",
"requirements": [
"A pool with at least 3 hosts.",
"An additional free disk on every host.",
"A second pool with at least 1 host and a SR to receive VMs.",
"Configuration in data.py for each remote SR that will be tested.",
"A small VM that can be imported on the SRs.",
],
"nb_pools": 2,
"params": {
"--vm": "single/small_vm",
"--volume-size": "3TiB",
},
"paths": ["tests/storage"],
"markers": "not unused_4k_disks and not thick_provisioned",
"name_filter": "migration and not linstor",
},
"storage-migrations-large-thick": {
"description": "same as storage-migrations with 3TiB VDIs, and tests requiring 3TiB allocation",
"requirements": [
"A pool with at least 3 hosts.",
"An additional free disk on every host.",
"A second pool with at least 1 host and a SR to receive VMs.",
"Configuration in data.py for each remote SR that will be tested.",
"A small VM that can be imported on the SRs.",
],
"nb_pools": 2,
"params": {
"--vm": "single/small_vm",
"--volume-size": "3TiB",
},
"paths": ["tests/storage"],
"markers": "not unused_4k_disks and thick_provisioned",
"name_filter": "migration and not linstor",
},
"storage-reboots": {
"description": "storage driver tests that involve rebooting hosts (except flaky tests)",
"requirements": [
Expand Down
4 changes: 4 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ markers =
multi_vms: tests that it would be good to run on a variety of VMs (includes `small_vm` but excludes `big_vm`).
debian_uefi_vm: tests that require a Debian UEFI VM

# * Disk-related markers
thick_provisioned: tests that use thick provisioned SRs.
disk_throughput_intensive: tests that fill a large VDI entirely (require a fast disk).

# * Other markers
reboot: tests that reboot one or more hosts.
flaky: flaky tests. Usually pass, but sometimes fail unexpectedly.
Expand Down
1 change: 1 addition & 0 deletions tests/storage/ext/test_ext_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ def test_vdi_export_import(self, storage_test_vm: VM, ext_sr: SR, image_format:
vdi_export_import(storage_test_vm, ext_sr, image_format, temp_large_dir, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_ext_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_ext_sr, defer)

Expand Down
2 changes: 2 additions & 0 deletions tests/storage/lvm/test_lvm_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ def test_create_and_destroy_sr(self, host: Host,
sr.destroy(verify=True)

@pytest.mark.usefixtures("lvm_sr")
@pytest.mark.thick_provisioned
class TestLVMSR:
@pytest.mark.quicktest
def test_quicktest(self, lvm_sr: SR) -> None:
Expand Down Expand Up @@ -150,6 +151,7 @@ def test_coalesce(self, storage_test_vm: VM, vdi_on_lvm_sr: VDI, vdi_op: Coalesc
coalesce_integrity(storage_test_vm, vdi_on_lvm_sr, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_lvm_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_lvm_sr, defer)

Expand Down
1 change: 1 addition & 0 deletions tests/storage/lvm/test_lvm_sr_crosspool_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
@pytest.mark.small_vm # run with a small VM to test the features
@pytest.mark.big_vm # and ideally with a big VM to test it scales
@pytest.mark.usefixtures("hostB1", "local_sr_on_hostB1")
@pytest.mark.thick_provisioned
class Test:
def test_cold_crosspool_migration(self, host: Host, hostB1: Host, vm_on_lvm_sr: VM, local_sr_on_hostB1: SR) -> None:
cold_migration_then_come_back(vm_on_lvm_sr, host, hostB1, local_sr_on_hostB1)
Expand Down
1 change: 1 addition & 0 deletions tests/storage/lvm/test_lvm_sr_intrapool_migration.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
@pytest.mark.small_vm # run with a small VM to test the features
@pytest.mark.big_vm # and ideally with a big VM to test it scales
@pytest.mark.usefixtures("hostA2", "local_sr_on_hostA2")
@pytest.mark.thick_provisioned
class Test:
def test_cold_intrapool_migration(self, host: Host, hostA2: Host, vm_on_lvm_sr: VM, local_sr_on_hostA2: SR) -> None:
cold_migration_then_come_back(vm_on_lvm_sr, host, hostA2, local_sr_on_hostA2)
Expand Down
2 changes: 2 additions & 0 deletions tests/storage/lvmoiscsi/test_lvmoiscsi_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def test_create_and_destroy_sr(self, host: Host, lvmoiscsi_device_config: dict[s

@pytest.mark.usefixtures('image_format')
@pytest.mark.usefixtures("lvmoiscsi_sr")
@pytest.mark.thick_provisioned
class TestLVMOISCSISR:
@pytest.mark.quicktest
def test_quicktest(self, lvmoiscsi_sr: SR) -> None:
Expand Down Expand Up @@ -77,6 +78,7 @@ def test_coalesce(self, storage_test_vm: 'VM', vdi_on_lvmoiscsi_sr: 'VDI', vdi_o
coalesce_integrity(storage_test_vm, vdi_on_lvmoiscsi_sr, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_lvmoiscsi_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_lvmoiscsi_sr, defer)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
@pytest.mark.small_vm # run with a small VM to test the features
@pytest.mark.big_vm # and ideally with a big VM to test it scales
@pytest.mark.usefixtures("hostB1", "local_sr_on_hostB1")
@pytest.mark.thick_provisioned
class Test:
def test_cold_crosspool_migration(
self, host: Host, hostB1: Host, vm_on_lvmoiscsi_sr: VM, local_sr_on_hostB1: SR
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
@pytest.mark.small_vm # run with a small VM to test the features
@pytest.mark.big_vm # and ideally with a big VM to test it scales
@pytest.mark.usefixtures("hostA2", "local_sr_on_hostA2")
@pytest.mark.thick_provisioned
class Test:
def test_live_intrapool_shared_migration(self, host: Host, hostA2: Host, vm_on_lvmoiscsi_sr: VM) -> None:
sr = vm_on_lvmoiscsi_sr.get_sr()
Expand Down
1 change: 1 addition & 0 deletions tests/storage/nfs/test_nfs_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ def test_coalesce(self, storage_test_vm: VM, dispatch_nfs: VDI, vdi_op: Coalesce
coalesce_integrity(storage_test_vm, dispatch_nfs, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_nfs_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_nfs_sr, defer)

Expand Down
1 change: 1 addition & 0 deletions tests/storage/xfs/test_xfs_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ def test_coalesce(self, storage_test_vm: VM, vdi_on_xfs_sr: VDI, vdi_op: Coalesc
coalesce_integrity(storage_test_vm, vdi_on_xfs_sr, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_xfs_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_xfs_sr, defer)

Expand Down
1 change: 1 addition & 0 deletions tests/storage/zfs/test_zfs_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ def test_coalesce(self, storage_test_vm: VM, vdi_on_zfs_sr: VDI, vdi_op: Coalesc
coalesce_integrity(storage_test_vm, vdi_on_zfs_sr, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_zfs_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_zfs_sr, defer)

Expand Down
1 change: 1 addition & 0 deletions tests/storage/zfsvol/test_zfsvol_sr.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ def test_coalesce(self, storage_test_vm: VM, vdi_on_zfsvol_sr: VDI, vdi_op: Coal
coalesce_integrity(storage_test_vm, vdi_on_zfsvol_sr, vdi_op, defer)

@pytest.mark.small_vm
@pytest.mark.disk_throughput_intensive
def test_full_vdi_write(self, storage_test_vm: VM, vdi_on_zfsvol_sr: VDI, defer: Defer):
full_vdi_write(storage_test_vm, vdi_on_zfsvol_sr, defer)

Expand Down
Loading