Hi On Wed, Sep 23, 2026 at 1:37 PM Kevin Wolf <[email protected]> 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
