Now that the "check" script is a little bit smarter with providing a list of tests that are supported for an image format, we can also add more image formats that can be used for generic block layer testing. (Note: qcow1 and luks are not added because some tests there currently fail, and other formats like bochs, cloop, dmg and vvfat do not work with the generic tests and thus would only get skipped if we'd tried to add them here) Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20251014104142.1281028-4-thuth@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
66 lines
1.7 KiB
Meson
66 lines
1.7 KiB
Meson
if not have_tools or host_os == 'windows'
|
|
subdir_done()
|
|
endif
|
|
|
|
bash = find_program('bash', required: false, version: '>= 4.0')
|
|
if not bash.found()
|
|
message('bash >= v4.0 not available ==> Disabled the qemu-iotests.')
|
|
subdir_done()
|
|
endif
|
|
|
|
qemu_iotests_binaries = [qemu_img, qemu_io, qemu_nbd, qsd]
|
|
qemu_iotests_env = {'PYTHON': python.full_path()}
|
|
qemu_iotests_formats = {
|
|
'qcow2': 'quick',
|
|
'raw': 'slow',
|
|
'parallels': 'thorough',
|
|
'qed': 'thorough',
|
|
'vdi': 'thorough',
|
|
'vhdx': 'thorough',
|
|
'vmdk': 'thorough',
|
|
'vpc': 'thorough'
|
|
}
|
|
|
|
foreach k, v : emulators
|
|
if k.startswith('qemu-system-')
|
|
qemu_iotests_binaries += v
|
|
endif
|
|
endforeach
|
|
|
|
qemu_iotests_check_cmd = files('check')
|
|
|
|
foreach format, speed: qemu_iotests_formats
|
|
if speed == 'quick'
|
|
suites = 'block'
|
|
else
|
|
suites = ['block-' + speed, speed]
|
|
endif
|
|
|
|
args = ['-tap', '-' + format]
|
|
if speed == 'quick'
|
|
args += ['-g', 'auto']
|
|
endif
|
|
|
|
rc = run_command(
|
|
[python, qemu_iotests_check_cmd] + args + ['-n'],
|
|
check: true,
|
|
)
|
|
|
|
foreach item: rc.stdout().strip().split()
|
|
args = [qemu_iotests_check_cmd,
|
|
'-tap', '-' + format, item,
|
|
'--source-dir', meson.current_source_dir(),
|
|
'--build-dir', meson.current_build_dir()]
|
|
# Some individual tests take as long as 45 seconds
|
|
# Bump the timeout to 3 minutes for some headroom
|
|
# on slow machines to minimize spurious failures
|
|
test('io-' + format + '-' + item,
|
|
python,
|
|
args: args,
|
|
depends: qemu_iotests_binaries,
|
|
env: qemu_iotests_env,
|
|
protocol: 'tap',
|
|
timeout: 180,
|
|
suite: suites)
|
|
endforeach
|
|
endforeach
|