1 if not have_tools or targetos == 'windows' or get_option('gprof')
5 foreach cflag: config_host['QEMU_CFLAGS'].split()
6 if cflag.startswith('-fsanitize') and \
7 not cflag.contains('safe-stack') and not cflag.contains('cfi-icall')
8 message('Sanitizers are enabled ==> Disabled the qemu-iotests.')
13 bash = find_program('bash', required: false, version: '>= 4.0')
15 message('bash >= v4.0 not available ==> Disabled the qemu-iotests.')
19 qemu_iotests_binaries = [qemu_img, qemu_io, qemu_nbd, qsd]
20 qemu_iotests_env = {'PYTHON': python.full_path()}
21 qemu_iotests_formats = {
29 foreach k, v : emulators
30 if k.startswith('qemu-system-')
31 qemu_iotests_binaries += v
35 qemu_iotests_check_cmd = files('check')
37 foreach format, speed: qemu_iotests_formats
41 suites = ['block-' + speed, speed]
44 args = ['-tap', '-' + format]
46 args += ['-g', 'auto']
50 [qemu_iotests_check_cmd] + args + ['-n'],
54 foreach item: rc.stdout().strip().split()
55 args = ['-tap', '-' + format, item,
56 '--source-dir', meson.current_source_dir(),
57 '--build-dir', meson.current_build_dir()]
58 # Some individual tests take as long as 45 seconds
59 # Bump the timeout to 3 minutes for some headroom
60 # on slow machines to minimize spurious failures
61 test('io-' + format + '-' + item,
62 qemu_iotests_check_cmd,
64 depends: qemu_iotests_binaries,
65 env: qemu_iotests_env,