Skip to content

Commit 1c6e3f6

Browse files
committed
vdi: only write a small data amount in large volumes for faster tests
Signed-off-by: Gaëtan Lehmann <gaetan.lehmann@vates.tech>
1 parent 3814ed3 commit 1c6e3f6

1 file changed

Lines changed: 5 additions & 13 deletions

File tree

tests/storage/storage.py

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -304,16 +304,8 @@ def vdi_export_import(vm: VM, sr: SR, image_format: ImageFormat, temp_large_dir:
304304
defer(lambda: vm.disconnect_vdi(vdi_src) if vdi_src is not None and vdi_src.uuid in vm.vdis else None)
305305
dev = f'/dev/{vbd.param_get("device")}'
306306

307-
# the stream is 1/5 of the full one, truncated to a multiple of 32KiB, in order to
308-
# be validable in a single command
309-
stream_size = (config.volume_size // 5 // (32 * KiB)) * (32 * KiB)
310-
stream_position = (config.volume_size // 2)
311-
312-
checksum1 = randstream(vm, f'generate --size {stream_size} {dev}')
313-
# use a different seed to not write the same data (default seed is 0)
314-
checksum2 = randstream(vm, f'generate --seed 1 --position {stream_position} --size {stream_size} {dev}')
315-
randstream(vm, f'validate --size {stream_size} --expected-checksum {checksum1} {dev}')
316-
randstream(vm, f'validate --position {stream_position} --size {stream_size} --expected-checksum {checksum2} {dev}')
307+
checksums = partially_populate_device(vm, dev, config.volume_size)
308+
validate_partially_populated_device(vm, dev, config.volume_size, checksums)
317309
vm.disconnect_vdi(vdi_src)
318310

319311
image_path = f'{temp_large_dir}/{vdi_src.uuid}.{image_format}'
@@ -324,7 +316,8 @@ def vdi_export_import(vm: VM, sr: SR, image_format: ImageFormat, temp_large_dir:
324316

325317
# check that the zero blocks are not part of the result
326318
size_mb = int(vm.host.ssh(f'du -sm --apparent-size {image_path}').split()[0])
327-
assert stream_size // MiB * 2 < size_mb < stream_size // MiB * 2.1, f"unexpected image size: {size_mb}"
319+
stream_size = partial_stream_size(config.volume_size)
320+
assert stream_size // MiB * 3 < size_mb < stream_size // MiB * 3.1, f"unexpected image size: {size_mb}"
328321
vdi_dest = sr.create_vdi(image_format=image_format, virtual_size=config.volume_size)
329322
defer(lambda: vdi_dest.destroy())
330323

@@ -333,5 +326,4 @@ def vdi_export_import(vm: VM, sr: SR, image_format: ImageFormat, temp_large_dir:
333326
defer(lambda: vm.disconnect_vdi(vdi_dest))
334327
dev = f'/dev/{vbd.param_get("device")}'
335328

336-
randstream(vm, f'validate --size {stream_size} --expected-checksum {checksum1} {dev}')
337-
randstream(vm, f'validate --position {stream_position} --size {stream_size} --expected-checksum {checksum2} {dev}')
329+
validate_partially_populated_device(vm, dev, config.volume_size, checksums)

0 commit comments

Comments
 (0)