| if not have_tools or targetos == 'windows' or get_option('gprof') |
| subdir_done() |
| endif |
| |
| foreach cflag: config_host['QEMU_CFLAGS'].split() |
| if cflag.startswith('-fsanitize') and \ |
| not cflag.contains('safe-stack') and not cflag.contains('cfi-icall') |
| message('Sanitizers are enabled ==> Disabled the qemu-iotests.') |
| subdir_done() |
| endif |
| endforeach |
| |
| 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', |
| 'qed': 'thorough', |
| 'vmdk': 'thorough', |
| 'vpc': 'thorough' |
| } |
| |
| foreach k, v : emulators |
| if k.startswith('qemu-system-') |
| qemu_iotests_binaries += v |
| endif |
| endforeach |
| |
| foreach format, speed: qemu_iotests_formats |
| if speed == 'quick' |
| suites = 'block' |
| else |
| suites = ['block-' + speed, speed] |
| endif |
| test('qemu-iotests ' + format, sh, args: [files('../check-block.sh'), format], |
| depends: qemu_iotests_binaries, env: qemu_iotests_env, |
| protocol: 'tap', |
| suite: suites, |
| timeout: 0, |
| is_parallel: false) |
| endforeach |