[Libguestfs] Having integration tests "test the future" with QEMU
Markus Armbruster
armbru at redhat.com
Fri Mar 6 12:27:22 UTC 2020
"Richard W.M. Jones" <rjones at redhat.com> writes:
> On Wed, Mar 04, 2020 at 03:48:34PM +0100, Markus Armbruster wrote:
>> 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.
>
> Yes we would add a -compat option when running qemu (only when running
> non-production builds of libguestfs) so that it would fail loudly when
> we use a deprecated feature. This is the best way I've heard of so
> far to get advanced warning of deprecated features.
Excellent. I'll let you know when my work is upstream.
More information about the Libguestfs
mailing list