I understand libguestfs comes with integration tests. You might be
interested in something I'm developing for QEMU 5.0 to permit "testing
the future". I'd like to ensure it is actually useful before I
continue. Let me know what you think.
= Motivation =
When layers above QEMU somehow miss feature deprecation, things continue
to work until the deprecated interface goes away, at which point we have
an entirely avoidable regression.
We've been trying to get better at communicating feature deprecation to
the layers above QEMU. An obvious first step was systematic
documentation.
However, documentation is all too easy to miss. Even if you don't miss
it, you may need to continue using the deprecated feature with old
versions of QEMU, and that logic needs to be tested.
I'm working on a way to run QEMU with the deprecated features disabled.
This permits "testing the future".
From my cover letter:
This series extends QMP introspection to cover deprecation.
Additionally, new option -compat lets you configure what to do when
deprecated interfaces get used. This is intended for testing users of
the management interfaces. It is experimental.
-compat deprecated-input=<in-policy> configures what to do when
deprecated input is received. Available policies:
* accept: Accept deprecated commands and arguments (default)
* reject: Reject them
* crash: Crash
-compat deprecated-output=<out-policy> configures what to do when
deprecated output is sent. Available output policies:
* accept: Emit deprecated command results and events (default)
* hide: Suppress them
For now, -compat covers only deprecated syntactic aspects of QMP. We
may want to extend it to cover semantic aspects, CLI, and experimental
features.
If you want to learn more, check out the last three commit messages in
the series.
= Patches =
[PATCH v2 00/30] Configurable policy for handling deprecated interfaces
Message-Id: <20200303163505.32041-1-armbru(a)redhat.com>
https://lists.nongnu.org/archive/html/qemu-devel/2020-03/msg00645.html
= Git =
Tag patchew/20200303163505.32041-1-armbru(a)redhat.com in repository
https://github.com/patchew-project/qemu.git