[PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)

Marc-André Lureau posted 88 patches 3 days, 23 hours ago
accel/tcg/cputlb.c                                 |   4 +-
backends/igvm-cfg.c                                |   3 +-
block/monitor/block-hmp-cmds.c                     |  13 +-
block/monitor/qmp-cmds.c                           |  49 +-
contrib/plugins/lockstep.c                         |  25 -
docs/devel/qom.rst                                 |   2 +-
hw/9pfs/9p-synth.c                                 |   2 +-
hw/9pfs/9p-util.h                                  |   2 +-
hw/9pfs/9p.c                                       |   2 +-
hw/acpi/core.c                                     |   2 +-
hw/acpi/pci.c                                      |   6 +-
hw/char/virtio-serial-bus.c                        |  23 +-
hw/core/machine.c                                  |   2 +-
hw/core/reset.c                                    |   4 +-
hw/core/resetcontainer.c                           |   5 +-
hw/core/sysbus.c                                   |  17 +-
hw/hyperv/hv-balloon.c                             |   2 +-
hw/i386/multiboot.c                                |   2 +-
hw/misc/auxbus.c                                   |  22 +-
hw/net/eepro100.c                                  |   2 +-
hw/nvram/fw_cfg.c                                  |   8 +-
hw/pci/pci-hmp-cmds.c                              |  38 --
hw/pci/pci-internal.h                              |   2 +-
hw/pci/pci.c                                       |  40 +-
hw/ppc/pef.c                                       |   3 +-
hw/scsi/mptsas.c                                   |   5 +-
hw/usb/bus.c                                       |  23 +-
hw/vfio/pci.c                                      |   2 +-
hw/virtio/virtio-mem.c                             |   6 +-
hw/xen/xen-bus.c                                   |  12 +-
include/glib-compat.h                              |  41 +-
include/hw/core/qdev.h                             |   4 +-
include/monitor/monitor.h                          |   2 +
include/qom/object.h                               |   6 +-
linux-user/syscall.c                               |   2 +-
linux-user/uaccess.c                               |   2 +-
meson.build                                        |   2 +-
monitor/hmp.c                                      |  12 +-
monitor/monitor.c                                  |  28 +-
monitor/qmp.c                                      |  12 +-
net/colo.c                                         |   4 +-
python/qemu/machine/machine.py                     |   7 -
qapi/block.json                                    |   3 +
qapi/qapi-clone-visitor.c                          |  16 +-
qapi/qapi-visit-core.c                             |   6 +-
qapi/qdev.json                                     |  31 ++
qemu-io-cmds.c                                     |  74 +--
qemu-io.c                                          |   4 +
rust/bindings/hwcore-sys/lib.rs                    |   2 +-
scripts/checkpatch.pl                              |   7 +-
stubs/meson.build                                  |   1 +
stubs/monitor-puts.c                               |   9 +
system/memory.c                                    |   2 +-
system/qdev-monitor.c                              |  42 +-
system/qtest.c                                     |   4 +-
system/ram-block-attributes.c                      |   3 +-
system/vl.c                                        |   2 +-
target/i386/kvm/tdx.c                              |   3 +-
target/s390x/kvm/pv.c                              |   3 +-
tests/qemu-iotests/004.out                         |  20 +-
tests/qemu-iotests/007                             |  25 +-
tests/qemu-iotests/021.out                         |  60 +--
tests/qemu-iotests/026.out                         | 396 +++++++-------
tests/qemu-iotests/026.out.nocache                 | 168 +++---
tests/qemu-iotests/028                             |  27 +-
tests/qemu-iotests/028.out                         |  17 +-
tests/qemu-iotests/045                             |   6 +-
tests/qemu-iotests/051                             |  75 ++-
tests/qemu-iotests/051.out                         | 241 +++------
tests/qemu-iotests/051.pc.out                      | 311 +++++------
tests/qemu-iotests/056                             |  21 +-
tests/qemu-iotests/059.out                         |   6 +-
tests/qemu-iotests/060                             |   9 +-
tests/qemu-iotests/060.out                         |  48 +-
tests/qemu-iotests/061.out                         |   4 +-
tests/qemu-iotests/068                             |  56 +-
tests/qemu-iotests/068.out                         |  26 +-
tests/qemu-iotests/069.out                         |   2 +-
tests/qemu-iotests/070.out                         |   2 +-
tests/qemu-iotests/071                             |  31 +-
tests/qemu-iotests/071.out                         |  16 +-
tests/qemu-iotests/072.out                         |   2 +-
tests/qemu-iotests/075.out                         |  14 +-
tests/qemu-iotests/076.out                         |   6 +-
tests/qemu-iotests/078.out                         |  12 +-
tests/qemu-iotests/080.out                         |  44 +-
tests/qemu-iotests/081                             |  11 +-
tests/qemu-iotests/081.out                         |  12 +-
tests/qemu-iotests/083.out                         | 104 ++--
tests/qemu-iotests/088.out                         |  12 +-
tests/qemu-iotests/089.out                         |   4 +-
tests/qemu-iotests/091                             |  45 +-
tests/qemu-iotests/092.out                         |  24 +-
tests/qemu-iotests/093                             |  15 +-
tests/qemu-iotests/102                             |  21 +-
tests/qemu-iotests/102.out                         |  12 +-
tests/qemu-iotests/103.out                         |  14 +-
tests/qemu-iotests/114.out                         |   4 +-
tests/qemu-iotests/116.out                         |  14 +-
tests/qemu-iotests/117                             |   5 +-
tests/qemu-iotests/117.out                         |   8 +-
tests/qemu-iotests/119                             |   5 +-
tests/qemu-iotests/119.out                         |   4 +-
tests/qemu-iotests/120                             |   5 +-
tests/qemu-iotests/120.out                         |   4 +-
tests/qemu-iotests/124                             |  33 +-
tests/qemu-iotests/130                             |  53 +-
tests/qemu-iotests/130.out                         |   8 +-
tests/qemu-iotests/132                             |   5 +-
tests/qemu-iotests/133.out                         |  30 +-
tests/qemu-iotests/134.out                         |   2 +-
tests/qemu-iotests/136                             |   7 +-
tests/qemu-iotests/137.out                         |  30 +-
tests/qemu-iotests/140.out                         |   2 +-
tests/qemu-iotests/142                             | 233 ++++----
tests/qemu-iotests/142.out                         |  30 +-
tests/qemu-iotests/143.out                         |   4 +-
tests/qemu-iotests/145                             |   8 +-
tests/qemu-iotests/145.out                         |   6 +-
tests/qemu-iotests/146                             |   5 -
tests/qemu-iotests/148                             |  13 +-
tests/qemu-iotests/151                             |  51 +-
tests/qemu-iotests/152                             |   5 +-
tests/qemu-iotests/153                             |  37 +-
tests/qemu-iotests/153.out                         |  86 +--
tests/qemu-iotests/156                             |  37 +-
tests/qemu-iotests/156.out                         |  60 +--
tests/qemu-iotests/157                             |  10 +-
tests/qemu-iotests/157.out                         |  16 +-
tests/qemu-iotests/161                             |  19 +-
tests/qemu-iotests/161.out                         |  24 +-
tests/qemu-iotests/165                             |  10 +-
tests/qemu-iotests/171.out                         |  68 +--
tests/qemu-iotests/172                             |  76 ++-
tests/qemu-iotests/172.out                         | 305 +----------
tests/qemu-iotests/181                             |  86 ++-
tests/qemu-iotests/181.out                         |  36 +-
tests/qemu-iotests/182                             |   5 +-
tests/qemu-iotests/185                             |  15 +-
tests/qemu-iotests/185.out                         |  10 +-
tests/qemu-iotests/186                             |  12 +-
tests/qemu-iotests/186.out                         | 590 +++++++++------------
tests/qemu-iotests/187.out                         |   6 +-
tests/qemu-iotests/188.out                         |   2 +-
tests/qemu-iotests/192                             |  25 +-
tests/qemu-iotests/192.out                         |  17 +-
tests/qemu-iotests/197.out                         |   2 +-
tests/qemu-iotests/201                             |  75 ++-
tests/qemu-iotests/201.out                         |  10 +-
tests/qemu-iotests/205                             |   4 +-
tests/qemu-iotests/214.out                         |   2 +-
tests/qemu-iotests/215.out                         |   2 +-
tests/qemu-iotests/216                             |   6 +-
tests/qemu-iotests/216.out                         |   3 +-
tests/qemu-iotests/220.out                         |   2 +-
tests/qemu-iotests/225                             |  28 +-
tests/qemu-iotests/225.out                         |  25 +-
tests/qemu-iotests/226.out                         |  16 +-
tests/qemu-iotests/232                             |  32 +-
tests/qemu-iotests/232.out                         | 216 ++++++--
tests/qemu-iotests/236                             |   7 +-
tests/qemu-iotests/236.out                         |   8 -
tests/qemu-iotests/244.out                         |  22 +-
tests/qemu-iotests/245                             |  28 +-
tests/qemu-iotests/246                             |  11 +-
tests/qemu-iotests/246.out                         |   8 +-
tests/qemu-iotests/249                             |  19 +-
tests/qemu-iotests/249.out                         |  18 +-
tests/qemu-iotests/254                             |   4 +-
tests/qemu-iotests/255                             |   7 +-
tests/qemu-iotests/257                             |   7 +-
tests/qemu-iotests/257.out                         | 315 -----------
tests/qemu-iotests/260                             |   9 +-
tests/qemu-iotests/264                             |   5 +-
tests/qemu-iotests/267                             | 139 +++--
tests/qemu-iotests/267.out                         | 447 ++++++++++++----
tests/qemu-iotests/271.out                         |  14 +-
tests/qemu-iotests/274                             |  14 +-
tests/qemu-iotests/274.out                         |  26 -
tests/qemu-iotests/280                             |   3 +-
tests/qemu-iotests/280.out                         |   3 +-
tests/qemu-iotests/281                             |  11 +-
tests/qemu-iotests/283                             |   4 +-
tests/qemu-iotests/283.out                         |   4 +-
tests/qemu-iotests/286                             |  15 +-
tests/qemu-iotests/286.out                         |   8 +-
tests/qemu-iotests/289.out                         |   2 +-
tests/qemu-iotests/293.out                         |  30 +-
tests/qemu-iotests/294.out                         |   4 +-
tests/qemu-iotests/298                             |   9 +-
tests/qemu-iotests/300                             |  34 +-
tests/qemu-iotests/304                             |   7 +-
tests/qemu-iotests/305.out                         |   2 +-
tests/qemu-iotests/307.out                         |   2 +-
tests/qemu-iotests/310                             |   6 +-
tests/qemu-iotests/310.out                         |   3 +-
tests/qemu-iotests/common.filter                   |   9 +-
tests/qemu-iotests/common.qemu                     |  58 +-
tests/qemu-iotests/common.rc                       |   8 -
tests/qemu-iotests/iotests.py                      |  40 +-
tests/qemu-iotests/tests/backup-discard-source     |  15 +-
tests/qemu-iotests/tests/copy-before-write         | 130 +++--
tests/qemu-iotests/tests/file-io-error.out         |   2 +-
tests/qemu-iotests/tests/image-fleecing            |   5 +-
tests/qemu-iotests/tests/image-fleecing.out        |  32 +-
tests/qemu-iotests/tests/inactive-node-nbd.out     |  10 +-
tests/qemu-iotests/tests/iothreads-create          |   3 +-
tests/qemu-iotests/tests/luks-detached-header      |  49 +-
.../tests/migrate-bitmaps-postcopy-test            |   5 +-
tests/qemu-iotests/tests/migrate-bitmaps-test      |   7 +-
tests/qemu-iotests/tests/mirror-change-copy-mode   |  15 +-
tests/qemu-iotests/tests/mirror-ready-cancel-error |   7 +-
tests/qemu-iotests/tests/nbd-reconnect-on-open.out |   4 +-
tests/qemu-iotests/tests/parallels-bitmap.out      |   4 +-
tests/qemu-iotests/tests/parallels-checks.out      |   4 +-
tests/qemu-iotests/tests/qcow2-internal-snapshots  | 226 ++++++--
.../tests/qcow2-internal-snapshots.out             | 175 +++---
tests/qemu-iotests/tests/qsd-migrate               |  23 +-
tests/qemu-iotests/tests/qsd-migrate.out           |  44 +-
tests/qemu-iotests/tests/reopen-file               |  12 +-
tests/qemu-iotests/tests/write-zeroes-unmap        |  42 +-
tests/qemu-iotests/tests/write-zeroes-unmap.out    |  80 +--
util/error-report.c                                |   2 +-
util/qemu-print.c                                  |  16 +-
224 files changed, 3658 insertions(+), 3754 deletions(-)
[PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)
Posted by Marc-André Lureau 3 days, 23 hours ago
Hi,

This series migrates all qemu-iotests away from HMP, so that the test
framework no longer depends on it and can execute with --disable-hmp.
This can simplify the tests, as they don't need to check/grep on stdout,
HMP & QMP but can rely increasingly on QMP alone.

The series is organized as follows: preparatory patches, monitor
infrastructure, test infrastructure, test migrations, cleanup.

x-query-qtree (info qtree) is introduced to make test 172 migration
easier, but arguably, qom-list could be extended instead.

All migrated tests have been verified to pass.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Marc-André Lureau (88):
      scripts/checkpatch: skip trailer checks inside patch diff
      build-sys: bump minimum glib version to v2.68
      docs/devel: minor fix in qom documentation
      qom: auto-terminate interfaces array in OBJECT_DEFINE_TYPE macros
      qemu-io: drop "qemu-io:" prefix in error-report
      monitor: allow a bare Monitor
      qemu-print: use monitor_puts() for any non-QMP monitor
      block/monitor: capture x-qemu-io output
      qemu-iotests/iotests: filter x-qemu-io messages
      tests/qemu-iotests: do no interpret backslash as escape
      tests/qemu-iotests: filter all generated node ids
      qemu-iotests/216: migrate away from HMP
      qemu-iotests/310: migrate away from HMP
      qemu-iotests/283: migrate away from HMP
      qemu-iotests/281: migrate away from HMP
      qemu-iotests/reopen-file: migrate away from HMP
      qemu-iotests/mirror-ready-cancel-error: migrate away from HMP
      qemu-iotests/copy-before-write: migrate away from HMP
      qemu-iotests/132: migrate away from HMP
      qemu-iotests/152: migrate away from HMP
      qemu-iotests/254: migrate away from HMP
      qemu-iotests/264: migrate away from HMP
      qemu-iotests/304: migrate away from HMP
      qemu-iotests/300: replace hmp_qemu_io with qmp
      qemu-iotests/298: migrate away from HMP
      qemu-iotests/056: migrate away from HMP
      qemu-iotests/093: migrate away from HMP
      qemu-iotests/124: migrate away from HMP
      qemu-iotests/136: migrate away from HMP
      qemu-iotests/148: migrate away from HMP
      qemu-iotests/151: migrate away from HMP
      qemu-iotests/236: migrate away from HMP
      qemu-iotests/245: migrate away from HMP
      qemu-iotests/255: migrate away from HMP
      qemu-iotests/257: migrate away from HMP
      qemu-iotests/260: migrate away from HMP
      qemu-iotests/280: migrate away from HMP
      qemu-iotests/backup-discard-source: migrate away from HMP
      qemu-iotests/qsd-migrate: migrate away from HMP
      qemu-iotests/mirror-change-copy-mode: migrate away from HMP
      qemu-iotests/migrate-bitmaps-test: migrate away from HMP
      qemu-iotests/image-fleecing: migrate away from HMP
      qemu-iotests/migrate-bitmaps-postcopy: migrate away from HMP
      qemu-iotests/165: migrate away from HMP
      qemu-iotests/iothreads-create: doesn't actually depend on HMP
      qemu-iotests/045: remove HMP monitor dependency
      qemu-iotests/common: add _run_qmp_job helper
      qemu-iotests/007: migrate away from HMP
      qemu-iotests/028: migrate away from HMP
      qemu-iotests/225: migrate away from HMP
      qemu-iotests/300: migrate away from HMP
      qemu-iotests/286: migrate away from HMP
      qemu-iotests/142: migrate away from HMP
      qemu-iotests/146: migrate away from HMP
      qemu-iotests/117: migrate away from HMP
      qemu-iotests/119: migrate away from HMP
      qemu-iotests/060: migrate away from HMP
      qemu-iotests/071: migrate away from HMP
      qemu-iotests/081: migrate away from HMP
      qemu-iotests/102: migrate away from HMP
      qemu-iotests/091: migrate away from HMP
      qemu-iotests/120: migrate away from HMP
      qemu-iotests/161: migrate away from HMP
      qemu-iotests/249: migrate away from HMP
      qemu-iotests/156: migrate away from HMP
      qemu-iotests/write-zeroes-unmap: migrate away from HMP
      qemu-iotests/luks-detached-header: migrate away from HMP
      qemu-iotests/qcow2-internal-snapshots: migrate away from HMP
      qemu-iotests/185: migrate away from HMP
      qemu-iotests/246: migrate away from HMP
      qemu-iotests/274: migrate away from HMP
      qemu-iotests/145: migrate away from HMP
      qemu-iotests/068: migrate away from HMP
      qemu-iotests/130: migrate away from HMP
      qemu-iotests/153: migrate away from HMP
      qemu-iotests/157: migrate away from HMP
      qemu-iotests/181: migrate away from HMP
      qemu-iotests/182: migrate away from HMP
      qemu-iotests/186: migrate away from HMP
      qemu-iotests/192: migrate away from HMP
      qemu-iotests/201: migrate away from HMP
      qemu-iotests/232: migrate away from HMP
      qemu-iotests/267: migrate away from HMP
      qemu-iotests/051: migrate away from HMP
      qdev: add x-query-qtree QMP command
      qemu-iotests/172: migrate away from HMP
      qemu-iotests: remove HMP framework support
      block/monitor: redirect HMP qemu-io to HMP stream

 accel/tcg/cputlb.c                                 |   4 +-
 backends/igvm-cfg.c                                |   3 +-
 block/monitor/block-hmp-cmds.c                     |  13 +-
 block/monitor/qmp-cmds.c                           |  49 +-
 contrib/plugins/lockstep.c                         |  25 -
 docs/devel/qom.rst                                 |   2 +-
 hw/9pfs/9p-synth.c                                 |   2 +-
 hw/9pfs/9p-util.h                                  |   2 +-
 hw/9pfs/9p.c                                       |   2 +-
 hw/acpi/core.c                                     |   2 +-
 hw/acpi/pci.c                                      |   6 +-
 hw/char/virtio-serial-bus.c                        |  23 +-
 hw/core/machine.c                                  |   2 +-
 hw/core/reset.c                                    |   4 +-
 hw/core/resetcontainer.c                           |   5 +-
 hw/core/sysbus.c                                   |  17 +-
 hw/hyperv/hv-balloon.c                             |   2 +-
 hw/i386/multiboot.c                                |   2 +-
 hw/misc/auxbus.c                                   |  22 +-
 hw/net/eepro100.c                                  |   2 +-
 hw/nvram/fw_cfg.c                                  |   8 +-
 hw/pci/pci-hmp-cmds.c                              |  38 --
 hw/pci/pci-internal.h                              |   2 +-
 hw/pci/pci.c                                       |  40 +-
 hw/ppc/pef.c                                       |   3 +-
 hw/scsi/mptsas.c                                   |   5 +-
 hw/usb/bus.c                                       |  23 +-
 hw/vfio/pci.c                                      |   2 +-
 hw/virtio/virtio-mem.c                             |   6 +-
 hw/xen/xen-bus.c                                   |  12 +-
 include/glib-compat.h                              |  41 +-
 include/hw/core/qdev.h                             |   4 +-
 include/monitor/monitor.h                          |   2 +
 include/qom/object.h                               |   6 +-
 linux-user/syscall.c                               |   2 +-
 linux-user/uaccess.c                               |   2 +-
 meson.build                                        |   2 +-
 monitor/hmp.c                                      |  12 +-
 monitor/monitor.c                                  |  28 +-
 monitor/qmp.c                                      |  12 +-
 net/colo.c                                         |   4 +-
 python/qemu/machine/machine.py                     |   7 -
 qapi/block.json                                    |   3 +
 qapi/qapi-clone-visitor.c                          |  16 +-
 qapi/qapi-visit-core.c                             |   6 +-
 qapi/qdev.json                                     |  31 ++
 qemu-io-cmds.c                                     |  74 +--
 qemu-io.c                                          |   4 +
 rust/bindings/hwcore-sys/lib.rs                    |   2 +-
 scripts/checkpatch.pl                              |   7 +-
 stubs/meson.build                                  |   1 +
 stubs/monitor-puts.c                               |   9 +
 system/memory.c                                    |   2 +-
 system/qdev-monitor.c                              |  42 +-
 system/qtest.c                                     |   4 +-
 system/ram-block-attributes.c                      |   3 +-
 system/vl.c                                        |   2 +-
 target/i386/kvm/tdx.c                              |   3 +-
 target/s390x/kvm/pv.c                              |   3 +-
 tests/qemu-iotests/004.out                         |  20 +-
 tests/qemu-iotests/007                             |  25 +-
 tests/qemu-iotests/021.out                         |  60 +--
 tests/qemu-iotests/026.out                         | 396 +++++++-------
 tests/qemu-iotests/026.out.nocache                 | 168 +++---
 tests/qemu-iotests/028                             |  27 +-
 tests/qemu-iotests/028.out                         |  17 +-
 tests/qemu-iotests/045                             |   6 +-
 tests/qemu-iotests/051                             |  75 ++-
 tests/qemu-iotests/051.out                         | 241 +++------
 tests/qemu-iotests/051.pc.out                      | 311 +++++------
 tests/qemu-iotests/056                             |  21 +-
 tests/qemu-iotests/059.out                         |   6 +-
 tests/qemu-iotests/060                             |   9 +-
 tests/qemu-iotests/060.out                         |  48 +-
 tests/qemu-iotests/061.out                         |   4 +-
 tests/qemu-iotests/068                             |  56 +-
 tests/qemu-iotests/068.out                         |  26 +-
 tests/qemu-iotests/069.out                         |   2 +-
 tests/qemu-iotests/070.out                         |   2 +-
 tests/qemu-iotests/071                             |  31 +-
 tests/qemu-iotests/071.out                         |  16 +-
 tests/qemu-iotests/072.out                         |   2 +-
 tests/qemu-iotests/075.out                         |  14 +-
 tests/qemu-iotests/076.out                         |   6 +-
 tests/qemu-iotests/078.out                         |  12 +-
 tests/qemu-iotests/080.out                         |  44 +-
 tests/qemu-iotests/081                             |  11 +-
 tests/qemu-iotests/081.out                         |  12 +-
 tests/qemu-iotests/083.out                         | 104 ++--
 tests/qemu-iotests/088.out                         |  12 +-
 tests/qemu-iotests/089.out                         |   4 +-
 tests/qemu-iotests/091                             |  45 +-
 tests/qemu-iotests/092.out                         |  24 +-
 tests/qemu-iotests/093                             |  15 +-
 tests/qemu-iotests/102                             |  21 +-
 tests/qemu-iotests/102.out                         |  12 +-
 tests/qemu-iotests/103.out                         |  14 +-
 tests/qemu-iotests/114.out                         |   4 +-
 tests/qemu-iotests/116.out                         |  14 +-
 tests/qemu-iotests/117                             |   5 +-
 tests/qemu-iotests/117.out                         |   8 +-
 tests/qemu-iotests/119                             |   5 +-
 tests/qemu-iotests/119.out                         |   4 +-
 tests/qemu-iotests/120                             |   5 +-
 tests/qemu-iotests/120.out                         |   4 +-
 tests/qemu-iotests/124                             |  33 +-
 tests/qemu-iotests/130                             |  53 +-
 tests/qemu-iotests/130.out                         |   8 +-
 tests/qemu-iotests/132                             |   5 +-
 tests/qemu-iotests/133.out                         |  30 +-
 tests/qemu-iotests/134.out                         |   2 +-
 tests/qemu-iotests/136                             |   7 +-
 tests/qemu-iotests/137.out                         |  30 +-
 tests/qemu-iotests/140.out                         |   2 +-
 tests/qemu-iotests/142                             | 233 ++++----
 tests/qemu-iotests/142.out                         |  30 +-
 tests/qemu-iotests/143.out                         |   4 +-
 tests/qemu-iotests/145                             |   8 +-
 tests/qemu-iotests/145.out                         |   6 +-
 tests/qemu-iotests/146                             |   5 -
 tests/qemu-iotests/148                             |  13 +-
 tests/qemu-iotests/151                             |  51 +-
 tests/qemu-iotests/152                             |   5 +-
 tests/qemu-iotests/153                             |  37 +-
 tests/qemu-iotests/153.out                         |  86 +--
 tests/qemu-iotests/156                             |  37 +-
 tests/qemu-iotests/156.out                         |  60 +--
 tests/qemu-iotests/157                             |  10 +-
 tests/qemu-iotests/157.out                         |  16 +-
 tests/qemu-iotests/161                             |  19 +-
 tests/qemu-iotests/161.out                         |  24 +-
 tests/qemu-iotests/165                             |  10 +-
 tests/qemu-iotests/171.out                         |  68 +--
 tests/qemu-iotests/172                             |  76 ++-
 tests/qemu-iotests/172.out                         | 305 +----------
 tests/qemu-iotests/181                             |  86 ++-
 tests/qemu-iotests/181.out                         |  36 +-
 tests/qemu-iotests/182                             |   5 +-
 tests/qemu-iotests/185                             |  15 +-
 tests/qemu-iotests/185.out                         |  10 +-
 tests/qemu-iotests/186                             |  12 +-
 tests/qemu-iotests/186.out                         | 590 +++++++++------------
 tests/qemu-iotests/187.out                         |   6 +-
 tests/qemu-iotests/188.out                         |   2 +-
 tests/qemu-iotests/192                             |  25 +-
 tests/qemu-iotests/192.out                         |  17 +-
 tests/qemu-iotests/197.out                         |   2 +-
 tests/qemu-iotests/201                             |  75 ++-
 tests/qemu-iotests/201.out                         |  10 +-
 tests/qemu-iotests/205                             |   4 +-
 tests/qemu-iotests/214.out                         |   2 +-
 tests/qemu-iotests/215.out                         |   2 +-
 tests/qemu-iotests/216                             |   6 +-
 tests/qemu-iotests/216.out                         |   3 +-
 tests/qemu-iotests/220.out                         |   2 +-
 tests/qemu-iotests/225                             |  28 +-
 tests/qemu-iotests/225.out                         |  25 +-
 tests/qemu-iotests/226.out                         |  16 +-
 tests/qemu-iotests/232                             |  32 +-
 tests/qemu-iotests/232.out                         | 216 ++++++--
 tests/qemu-iotests/236                             |   7 +-
 tests/qemu-iotests/236.out                         |   8 -
 tests/qemu-iotests/244.out                         |  22 +-
 tests/qemu-iotests/245                             |  28 +-
 tests/qemu-iotests/246                             |  11 +-
 tests/qemu-iotests/246.out                         |   8 +-
 tests/qemu-iotests/249                             |  19 +-
 tests/qemu-iotests/249.out                         |  18 +-
 tests/qemu-iotests/254                             |   4 +-
 tests/qemu-iotests/255                             |   7 +-
 tests/qemu-iotests/257                             |   7 +-
 tests/qemu-iotests/257.out                         | 315 -----------
 tests/qemu-iotests/260                             |   9 +-
 tests/qemu-iotests/264                             |   5 +-
 tests/qemu-iotests/267                             | 139 +++--
 tests/qemu-iotests/267.out                         | 447 ++++++++++++----
 tests/qemu-iotests/271.out                         |  14 +-
 tests/qemu-iotests/274                             |  14 +-
 tests/qemu-iotests/274.out                         |  26 -
 tests/qemu-iotests/280                             |   3 +-
 tests/qemu-iotests/280.out                         |   3 +-
 tests/qemu-iotests/281                             |  11 +-
 tests/qemu-iotests/283                             |   4 +-
 tests/qemu-iotests/283.out                         |   4 +-
 tests/qemu-iotests/286                             |  15 +-
 tests/qemu-iotests/286.out                         |   8 +-
 tests/qemu-iotests/289.out                         |   2 +-
 tests/qemu-iotests/293.out                         |  30 +-
 tests/qemu-iotests/294.out                         |   4 +-
 tests/qemu-iotests/298                             |   9 +-
 tests/qemu-iotests/300                             |  34 +-
 tests/qemu-iotests/304                             |   7 +-
 tests/qemu-iotests/305.out                         |   2 +-
 tests/qemu-iotests/307.out                         |   2 +-
 tests/qemu-iotests/310                             |   6 +-
 tests/qemu-iotests/310.out                         |   3 +-
 tests/qemu-iotests/common.filter                   |   9 +-
 tests/qemu-iotests/common.qemu                     |  58 +-
 tests/qemu-iotests/common.rc                       |   8 -
 tests/qemu-iotests/iotests.py                      |  40 +-
 tests/qemu-iotests/tests/backup-discard-source     |  15 +-
 tests/qemu-iotests/tests/copy-before-write         | 130 +++--
 tests/qemu-iotests/tests/file-io-error.out         |   2 +-
 tests/qemu-iotests/tests/image-fleecing            |   5 +-
 tests/qemu-iotests/tests/image-fleecing.out        |  32 +-
 tests/qemu-iotests/tests/inactive-node-nbd.out     |  10 +-
 tests/qemu-iotests/tests/iothreads-create          |   3 +-
 tests/qemu-iotests/tests/luks-detached-header      |  49 +-
 .../tests/migrate-bitmaps-postcopy-test            |   5 +-
 tests/qemu-iotests/tests/migrate-bitmaps-test      |   7 +-
 tests/qemu-iotests/tests/mirror-change-copy-mode   |  15 +-
 tests/qemu-iotests/tests/mirror-ready-cancel-error |   7 +-
 tests/qemu-iotests/tests/nbd-reconnect-on-open.out |   4 +-
 tests/qemu-iotests/tests/parallels-bitmap.out      |   4 +-
 tests/qemu-iotests/tests/parallels-checks.out      |   4 +-
 tests/qemu-iotests/tests/qcow2-internal-snapshots  | 226 ++++++--
 .../tests/qcow2-internal-snapshots.out             | 175 +++---
 tests/qemu-iotests/tests/qsd-migrate               |  23 +-
 tests/qemu-iotests/tests/qsd-migrate.out           |  44 +-
 tests/qemu-iotests/tests/reopen-file               |  12 +-
 tests/qemu-iotests/tests/write-zeroes-unmap        |  42 +-
 tests/qemu-iotests/tests/write-zeroes-unmap.out    |  80 +--
 util/error-report.c                                |   2 +-
 util/qemu-print.c                                  |  16 +-
 224 files changed, 3658 insertions(+), 3754 deletions(-)
---
base-commit: 67166d97a3269285aa68c489f85c9ccdf78495e1
change-id: 20260921-nohmp-e0dff1582929

Best regards,
--  
Marc-André Lureau <marcandre.lureau@redhat.com>


Re: [PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)
Posted by Kevin Wolf 3 days, 9 hours ago
Am 22.09.2026 um 22:17 hat Marc-André Lureau geschrieben:
> Hi,
> 
> This series migrates all qemu-iotests away from HMP, so that the test
> framework no longer depends on it and can execute with --disable-hmp.
> This can simplify the tests, as they don't need to check/grep on stdout,
> HMP & QMP but can rely increasingly on QMP alone.

Hm... Doesn't this mean that HMP loses all of its test coverage? I don't
feel that's a good idea.

Most tests are based on diffing stdout anyway, so I don't expect this
removal simplifies them much. I'll have to look at the individual
patches, but I'd rather expect that their output becomes harder to read
instead.

What are the general plans with HMP? Are we expecting most builds to
have HMP disabled in the future? (Why? It's useful for human users.)

I think most tests probably combine testing the HMP interface with
testing the backend functionality. If we really expect missing HMP to be
a relevant case in the future, these parts need to be separated so that
the backend test can run with QMP only while the HMP interface tests run
only when HMP is available.

Not sure how this is best done without effectively running all tests
twice. Maybe there is a middle ground of converting some tests to QMP
and making other tests explicitgly depend on HMP (i.e. they are skipped
if HMP isn't available).

Kevin
Re: [PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)
Posted by Marc-André Lureau 3 days, 9 hours ago
Hi

On Wed, Sep 23, 2026 at 1:37 PM Kevin Wolf <kwolf@redhat.com> wrote:
>
> Am 22.09.2026 um 22:17 hat Marc-André Lureau geschrieben:
> > Hi,
> >
> > This series migrates all qemu-iotests away from HMP, so that the test
> > framework no longer depends on it and can execute with --disable-hmp.
> > This can simplify the tests, as they don't need to check/grep on stdout,
> > HMP & QMP but can rely increasingly on QMP alone.
>
> Hm... Doesn't this mean that HMP loses all of its test coverage? I don't
> feel that's a good idea.

You're right that we shouldn't lose HMP coverage, the question is
where it belongs?

HMP is supposed to be just a frontend to QMP. Imho, testing that
interface is not the scope of qemu-iotests. We should have dedicated
tests for this, and better coverage.

Also, most of what qemu-iotests exercice of HMP is simply qemu-io,
which is the same with QMP.

> Most tests are based on diffing stdout anyway, so I don't expect this
> removal simplifies them much. I'll have to look at the individual
> patches, but I'd rather expect that their output becomes harder to read
> instead.

Yes, if we want "human readable" dumps, it is a bit more verbose in
JSON. But it's often better to have structured output you can test,
instead of bare strings that do not have stability guarantee.

>
> What are the general plans with HMP? Are we expecting most builds to
> have HMP disabled in the future? (Why? It's useful for human users.)

I expect QEMU will keep offering a "human" monitor by default. But QMP
should be a superset, so other "human" interfaces and tools can be
developped with the same functionality it offers.

> I think most tests probably combine testing the HMP interface with
> testing the backend functionality. If we really expect missing HMP to be
> a relevant case in the future, these parts need to be separated so that
> the backend test can run with QMP only while the HMP interface tests run
> only when HMP is available.
>
> Not sure how this is best done without effectively running all tests
> twice. Maybe there is a middle ground of converting some tests to QMP
> and making other tests explicitgly depend on HMP (i.e. they are skipped
> if HMP isn't available).

That could work, but maintaining two variants (or conditional paths)
per test adds burden without improving HMP coverage. The current tests
exercise HMP incidentally, not deliberately. A cleaner split: migrate
qemu-iotests fully to QMP for backend correctness, and add dedicated
HMP tests that intentionally validate the monitor frontend. I will
work on it for the next iteration.

thanks
Re: [PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)
Posted by Kevin Wolf 3 days, 9 hours ago
Am 22.09.2026 um 22:17 hat Marc-André Lureau geschrieben:
> Hi,
> 
> This series migrates all qemu-iotests away from HMP, so that the test
> framework no longer depends on it and can execute with --disable-hmp.
> This can simplify the tests, as they don't need to check/grep on stdout,
> HMP & QMP but can rely increasingly on QMP alone.
> 
> The series is organized as follows: preparatory patches, monitor
> infrastructure, test infrastructure, test migrations, cleanup.
> 
> x-query-qtree (info qtree) is introduced to make test 172 migration
> easier, but arguably, qom-list could be extended instead.
> 
> All migrated tests have been verified to pass.
> 
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>

Argh, noticed only now that the Cc: list is a bit short. Everyone seeing
only this email, please check the series and my reply on qemu-devel (and
add the necessary CCs when replying).

Please don't forget to CC at least qemu-block for v2.

Kevin
Re: [PATCH 00/88] qemu-iotests: migrate away from HMP ("make HMP optional" follow-up)
Posted by Stefan Hajnoczi 2 days, 23 hours ago
On Wed, Sep 23, 2026 at 11:40:01AM +0200, Kevin Wolf wrote:
> Am 22.09.2026 um 22:17 hat Marc-André Lureau geschrieben:
> > Hi,
> > 
> > This series migrates all qemu-iotests away from HMP, so that the test
> > framework no longer depends on it and can execute with --disable-hmp.
> > This can simplify the tests, as they don't need to check/grep on stdout,
> > HMP & QMP but can rely increasingly on QMP alone.
> > 
> > The series is organized as follows: preparatory patches, monitor
> > infrastructure, test infrastructure, test migrations, cleanup.
> > 
> > x-query-qtree (info qtree) is introduced to make test 172 migration
> > easier, but arguably, qom-list could be extended instead.
> > 
> > All migrated tests have been verified to pass.
> > 
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> 
> Argh, noticed only now that the Cc: list is a bit short. Everyone seeing
> only this email, please check the series and my reply on qemu-devel (and
> add the necessary CCs when replying).

Here are the original authors of test cases. I will take a look at the
ones that I wrote but I can help with the leftovers too:

001	Christoph Hellwig
002	Christoph Hellwig
003	Christoph Hellwig
004	Christoph Hellwig
005	Christoph Hellwig
007	Christoph Hellwig
008	Christoph Hellwig
009	Christoph Hellwig
010	Christoph Hellwig
011	Christoph Hellwig
012	Christoph Hellwig
013	Christoph Hellwig
014	Christoph Hellwig
015	Kevin Wolf
017	Kevin Wolf
018	Kevin Wolf
019	Kevin Wolf
020	Kevin Wolf
021	Christoph Hellwig
022	Kevin Wolf
023	Kevin Wolf
024	Kevin Wolf
025	Stefan Hajnoczi
026	Kevin Wolf
027	Stefan Hajnoczi
028	Stefan Hajnoczi
029	Kevin Wolf
030	Stefan Hajnoczi
031	Kevin Wolf
032	Kevin Wolf
033	Paolo Bonzini
034	Kevin Wolf
035	Kevin Wolf
036	Stefan Hajnoczi
037	Kevin Wolf
038	Kevin Wolf
039	Stefan Hajnoczi
040	Jeff Cody
041	Paolo Bonzini
042	Kevin Wolf
043	Stefan Hajnoczi
044	Kevin Wolf
045	Corey Bryant
046	Kevin Wolf
047	Kevin Wolf
048	Miroslav Rezanina
049	Kevin Wolf
050	Paolo Bonzini
051	Kevin Wolf
052	Stefan Hajnoczi
053	Stefan Hajnoczi
054	Kevin Wolf
055	Stefan Hajnoczi
056	Ian Main
057	Wenchao Xia
058	Wenchao Xia
059	Fam Zheng
060	Max Reitz
061	Max Reitz
062	Max Reitz
063	Alexandre Derumier
064	Jeff Cody
065	Max Reitz
066	Max Reitz
068	Max Reitz
069	Max Reitz
070	Jeff Cody
071	Max Reitz
072	Max Reitz
073	Kevin Wolf
074	Fam Zheng
075	Stefan Hajnoczi
076	Kevin Wolf
077	Kevin Wolf
078	Kevin Wolf
079	Hu Tao
080	Kevin Wolf
081	Benoît Canet
082	Kevin Wolf
083	Stefan Hajnoczi
084	Jeff Cody
085	Jeff Cody
086	Kevin Wolf
087	Kevin Wolf
088	Kevin Wolf
089	Max Reitz
090	Max Reitz
091	Jeff Cody
092	Kevin Wolf
093	Fam Zheng
094	Max Reitz
095	Jeff Cody
096	Alberto Garcia
097	Max Reitz
098	Max Reitz
099	Max Reitz
101	Stefan Hajnoczi
102	Max Reitz
103	Max Reitz
104	Hu Tao
105	Fam Zheng
106	Max Reitz
107	Max Reitz
108	Max Reitz
109	Kevin Wolf
110	Max Reitz
111	Max Reitz
112	Max Reitz
113	Max Reitz
114	Kevin Wolf
115	Max Reitz
116	Stefan Hajnoczi
117	Max Reitz
118	Max Reitz
119	Max Reitz
120	Max Reitz
121	Max Reitz
122	Kevin Wolf
123	Max Reitz
124	John Snow
125	Max Reitz
126	Max Reitz
127	Max Reitz
128	Stefan Hajnoczi
129	Fam Zheng
130	Kevin Wolf
131	Denis V. Lunev
132	Fam Zheng
133	Kevin Wolf
134	Daniel P. Berrange
135	Jeff Cody
136	Alberto Garcia
137	Kevin Wolf
138	Max Reitz
139	Alberto Garcia
140	Max Reitz
141	Max Reitz
142	Kevin Wolf
143	Max Reitz
144	Jeff Cody
145	Kevin Wolf
146	Jeff Cody
147	Max Reitz
148	Alberto Garcia
149	Daniel P. Berrange
150	Max Reitz
151	Max Reitz
152	Fam Zheng
153	Fam Zheng
154	Kevin Wolf
155	Max Reitz
156	Max Reitz
157	Kevin Wolf
158	Daniel P. Berrange
159	Reda Sallahi
160	Reda Sallahi
161	Alberto Garcia
162	Max Reitz
163	Pavel Butsykin
165	Vladimir Sementsov-Ogievskiy
170	Reda Sallahi
171	Tomáš Golembiovský
172	Kevin Wolf
173	Jeff Cody
174	Nir Soffer
175	Nir Soffer
176	Daniel P. Berrange
177	Eric Blake
178	Stefan Hajnoczi
179	Eric Blake
181	Kevin Wolf
182	Fam Zheng
184	Manos Pitsidianakis
185	Kevin Wolf
186	Kevin Wolf
187	Kevin Wolf
188	Daniel P. Berrange
189	Daniel P. Berrange
190	Eric Blake
191	Kevin Wolf
192	Fam Zheng
194	Stefan Hajnoczi
195	Kevin Wolf
196	Vladimir Sementsov-Ogievskiy
197	Eric Blake
198	Daniel P. Berrange
200	Jeff Cody
201	Daniel Henrique Barboza
202	Stefan Hajnoczi
203	Stefan Hajnoczi
204	Eric Blake
205	Vladimir Sementsov-Ogievskiy
206	Kevin Wolf
207	Kevin Wolf
208	Stefan Hajnoczi
209	Vladimir Sementsov-Ogievskiy
210	Kevin Wolf
211	Kevin Wolf
212	Kevin Wolf
213	Kevin Wolf
214	Max Reitz
215	Max Reitz
216	Max Reitz
217	Max Reitz
218	Max Reitz
219	Kevin Wolf
220	Eric Blake
221	Eric Blake
223	Eric Blake
224	Max Reitz
225	Max Reitz
226	John Snow
227	Kevin Wolf
228	Max Reitz
229	Jeff Cody
231	Jeff Cody
232	Kevin Wolf
233	Daniel P. Berrangé
234	Kevin Wolf
235	Vladimir Sementsov-Ogievskiy
236	John Snow
237	Kevin Wolf
238	Stefan Hajnoczi
239	yuchenlin
240	Alberto Garcia
241	Eric Blake
242	Andrey Shinkevich
243	Kevin Wolf
244	Kevin Wolf
245	Alberto Garcia
246	John Snow
247	Kevin Wolf
248	Vladimir Sementsov-Ogievskiy
249	Alberto Garcia
250	Vladimir Sementsov-Ogievskiy
251	Max Reitz
252	Max Reitz
253	Max Reitz
254	Vladimir Sementsov-Ogievskiy
255	Kevin Wolf
256	John Snow
257	John Snow
258	Max Reitz
259	Max Reitz
260	Vladimir Sementsov-Ogievskiy
261	Max Reitz
262	Kevin Wolf
263	Maxim Levitsky
264	Vladimir Sementsov-Ogievskiy
265	Max Reitz
266	Max Reitz
267	Kevin Wolf
268	Alberto Garcia
270	Max Reitz
271	Alberto Garcia
272	Max Reitz
273	Kevin Wolf
274	Kevin Wolf
277	Andrey Shinkevich
279	Stefan Hajnoczi
280	Kevin Wolf
281	Sergio Lopez
282	Daniel Henrique Barboza
283	Vladimir Sementsov-Ogievskiy
284	Daniel P. Berrangé
286	Max Reitz
287	Denis Plotnikov
288	Stefan Hajnoczi
289	Max Reitz
290	Alberto Garcia
292	Alberto Garcia
293	Maxim Levitsky
294	Maxim Levitsky
295	Maxim Levitsky
296	Maxim Levitsky
297	Kevin Wolf
298	Vladimir Sementsov-Ogievskiy
299	Vladimir Sementsov-Ogievskiy
300	Max Reitz
301	Eric Blake
302	Nir Soffer
303	Andrey Shinkevich
304	Stefan Reiter
305	Alberto Garcia
307	Kevin Wolf
308	Max Reitz
310	Andrey Shinkevich
312	Alberto Garcia
313	Alberto Garcia
314	Andrey Drobyshev

Stefan