[libvirt] [PATCH v2 1/4] Add 'output' codec in docs, conf and xml2xmltest

Erik Skultety eskultet at redhat.com
Mon May 21 09:59:50 UTC 2018


On Sat, May 19, 2018 at 01:01:48PM +0200, Filip Alac wrote:
> Add documentation for 'output' codec.
> Extend domain_conf with 'output' codec.
> Extend xml2xmltest for testing 'output' codec.
>
> Signed-off-by: Filip Alac <filipalac at gmail.com>
> ---
> Sorry for not the best mail subject.
>  docs/formatdomain.html.in                         | 15 ++++++++++++---
>  docs/schemas/domaincommon.rng                     |  1 +
>  src/conf/domain_conf.c                            |  3 ++-
>  src/conf/domain_conf.h                            |  1 +
>  .../migration-in-params-in.xml                    |  1 +
>  .../migration-out-nbd-in.xml                      |  1 +
>  .../migration-out-nbd-out.xml                     |  1 +
>  .../migration-out-params-in.xml                   |  1 +
>  tests/qemustatusxml2xmldata/modern-in.xml         |  1 +
>  tests/qemuxml2xmloutdata/sound-device.xml         |  2 ++
>  10 files changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
> index 0d0fd3b..665d0f2 100644
> --- a/docs/formatdomain.html.in
> +++ b/docs/formatdomain.html.in
> @@ -7387,9 +7387,18 @@ qemu-kvm -net nic,model=? /dev/null
>        with <code>ich6</code> model can have optional
>        sub-elements <code><codec></code> to attach various audio
>        codecs to the audio device. If not specified, a default codec
> -      will be attached to allow playback and recording. Valid values
> -      are 'duplex' (advertise a line-in and a line-out) and 'micro'
> -      (advertise a speaker and a microphone).
> +      will be attached to allow playback and recording.
> +      </p>
> +      <p>
> +      Valid values are:
> +      </p>
> +      <p>
> +      <ul>
> +        <li>'duplex' - advertise a line-in and a line-out </li>
> +        <li>'micro' -  advertise a speaker and a microphone </li>
> +        <li>'output' - advertise a line-out
> +            <span class="since">Since 4.4.0</span></li>
> +      </ul>
>      </p>
>
>  <pre>
> diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
> index 71ac3d0..f16e157 100644
> --- a/docs/schemas/domaincommon.rng
> +++ b/docs/schemas/domaincommon.rng
> @@ -3824,6 +3824,7 @@
>          <choice>
>            <value>duplex</value>
>            <value>micro</value>
> +          <value>output</value>
>          </choice>
>        </attribute>
>      </element>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 3689ac0..f12c87d 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -529,7 +529,8 @@ VIR_ENUM_IMPL(virDomainSmartcard, VIR_DOMAIN_SMARTCARD_TYPE_LAST,
>
>  VIR_ENUM_IMPL(virDomainSoundCodec, VIR_DOMAIN_SOUND_CODEC_TYPE_LAST,
>                "duplex",
> -              "micro")
> +              "micro",
> +              "output")
>
>  VIR_ENUM_IMPL(virDomainSoundModel, VIR_DOMAIN_SOUND_MODEL_LAST,
>                "sb16",
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index a78fdee..ee3285a 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -1335,6 +1335,7 @@ struct _virDomainInputDef {
>  typedef enum {
>      VIR_DOMAIN_SOUND_CODEC_TYPE_DUPLEX,
>      VIR_DOMAIN_SOUND_CODEC_TYPE_MICRO,
> +    VIR_DOMAIN_SOUND_CODEC_TYPE_OUTPUT,
>
>      VIR_DOMAIN_SOUND_CODEC_TYPE_LAST

You'll have to move the corresponding qemu enum from qemu_command.c over here,
since this fails compilation because qemuSoundCodec relies on ^this enum.

All the tests in this patch will have to be stripped into a separate patch and
moved at the end of the series.

>  } virDomainSoundCodecType;
> diff --git a/tests/qemustatusxml2xmldata/migration-in-params-in.xml b/tests/qemustatusxml2xmldata/migration-in-params-in.xml
> index b0caa34..03f18b4 100644
> --- a/tests/qemustatusxml2xmldata/migration-in-params-in.xml
> +++ b/tests/qemustatusxml2xmldata/migration-in-params-in.xml
> @@ -236,6 +236,7 @@
>      <flag name='iscsi.password-secret'/>
>      <flag name='isa-serial'/>
>      <flag name='dump-completed'/>
> +    <flag name='hda-output'/>

Status xml tests parse qemu capabilities which we don't know until patch 2.

...

> diff --git a/tests/qemuxml2xmloutdata/sound-device.xml b/tests/qemuxml2xmloutdata/sound-device.xml
> index 62336a8..cbf4d17 100644
> --- a/tests/qemuxml2xmloutdata/sound-device.xml
> +++ b/tests/qemuxml2xmloutdata/sound-device.xml
> @@ -43,6 +43,7 @@
>      <sound model='ich6'>
>        <codec type='micro'/>
>        <codec type='duplex'/>
> +      <codec type='output'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
>      </sound>
>      <sound model='ich9'>
> @@ -51,6 +52,7 @@
>      <sound model='ich9'>
>        <codec type='micro'/>
>        <codec type='duplex'/>
> +      <codec type='output'/>
>        <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
>      </sound>
>      <sound model='usb'/>

xml2xml test takes xml2argvdata as input and compares it with xml2xmloutdata,
so ^this is insufficient since the input doesn't know the codec yet, so
comparison fails. However, qemuxml2argv test would fail if you added it here
because then the command line buildup would fail, since that is done in patch
3.

Erik




More information about the libvir-list mailing list