[libvirt] [libvirt PATCH] conf: Fix the bug of disk->copy_on_read formating

The reason for it's not exposed for such long time is that there is no xml2xml test for it. This fixes the bug and adds test. --- src/conf/domain_conf.c | 2 +- tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml | 15 ++++++++++----- tests/qemuxml2xmltest.c | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 862b997..be22429 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -13640,7 +13640,7 @@ virDomainDiskDefFormat(virBufferPtr buf, const char *iomode = virDomainDiskIoTypeToString(def->iomode); const char *ioeventfd = virDomainIoEventFdTypeToString(def->ioeventfd); const char *event_idx = virDomainVirtioEventIdxTypeToString(def->event_idx); - const char *copy_on_read = virDomainVirtioEventIdxTypeToString(def->copy_on_read); + const char *copy_on_read = virDomainDiskCopyOnReadTypeToString(def->copy_on_read); const char *sgio = virDomainDiskSGIOTypeToString(def->sgio); char uuidstr[VIR_UUID_STRING_BUFLEN]; diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml b/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml index 0834cf2..076095e 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml +++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-copy_on_read.xml @@ -1,6 +1,8 @@ <domain type='qemu'> <name>test</name> + <uuid>468404ad-d49c-40f2-9e14-02294f9c1be3</uuid> <memory unit='KiB'>1048576</memory> + <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type arch='x86_64' machine='pc-0.13'>hvm</type> @@ -20,27 +22,30 @@ <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </disk> - <disk type='file' device='cdrom'> + <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso'/> <target dev='hdc' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='1' target='0' unit='0'/> </disk> + <controller type='usb' index='0'/> + <controller type='virtio-serial' index='0'> + <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> + </controller> + <controller type='ide' index='0'/> + <controller type='pci' index='0' model='pci-root'/> <interface type='user'> <mac address='52:54:00:e5:48:58'/> <model type='virtio'/> <driver name='vhost' txmode='iothread'/> </interface> - <controller type='usb' index='0'/> - <controller type='virtio-serial' index='0'> - <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> - </controller> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> + <memballoon model='virtio'/> </devices> </domain> diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 492ac60..d24cec9 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -289,6 +289,8 @@ mymain(void) DO_TEST("hostdev-scsi-virtio-scsi"); DO_TEST("hostdev-scsi-readonly"); + DO_TEST("disk-copy_on_read"); + virObjectUnref(driver.caps); virObjectUnref(driver.xmlopt); -- 1.8.1.4

On 05/14/2013 11:03 AM, Osier Yang wrote:
The reason for it's not exposed for such long time is that there is no xml2xml test for it. This fixes the bug and adds test.
It was not exposed, because virDomainVirtioEventIdx and virDomainDiskCopyOnRead enums are the same. Maybe we should use enum virDomainFeatureState for both instead? Jan

On 14/05/13 17:29, Ján Tomko wrote:
On 05/14/2013 11:03 AM, Osier Yang wrote:
The reason for it's not exposed for such long time is that there is no xml2xml test for it. This fixes the bug and adds test. It was not exposed, because virDomainVirtioEventIdx and virDomainDiskCopyOnRead enums are the same.
Oh, right,
Maybe we should use enum virDomainFeatureState for both instead?
It's something I planned to clean up, together with rng schemas. E.g. <optional> <attribute name="dumpCore"> <choice> <value>on</value> <value>off</value> </choice> </attribute> </optional> The principle is to define a common datatype and use it for all of the similar attributes, same principle for the enums in domain_conf.[ch]. But anyway, it's another story, and this patch is a right fix. Osier

On 05/14/2013 02:56 PM, Osier Yang wrote:
On 14/05/13 17:29, Ján Tomko wrote:
On 05/14/2013 11:03 AM, Osier Yang wrote:
The reason for it's not exposed for such long time is that there is no xml2xml test for it. This fixes the bug and adds test. It was not exposed, because virDomainVirtioEventIdx and virDomainDiskCopyOnRead enums are the same.
Oh, right,
Maybe we should use enum virDomainFeatureState for both instead?
It's something I planned to clean up, together with rng schemas. E.g.
<optional> <attribute name="dumpCore"> <choice> <value>on</value> <value>off</value> </choice> </attribute> </optional>
The principle is to define a common datatype and use it for all of the similar attributes, same principle for the enums in domain_conf.[ch].
But anyway, it's another story, and this patch is a right fix.
Oh, sorry, I forgot to ACK it. ACK if you change the commit message so it doesn't imply that the test exposes the bug. Jan

On 16/05/13 22:44, Ján Tomko wrote:
On 05/14/2013 02:56 PM, Osier Yang wrote:
On 14/05/13 17:29, Ján Tomko wrote:
On 05/14/2013 11:03 AM, Osier Yang wrote:
The reason for it's not exposed for such long time is that there is no xml2xml test for it. This fixes the bug and adds test. It was not exposed, because virDomainVirtioEventIdx and virDomainDiskCopyOnRead enums are the same. Oh, right,
Maybe we should use enum virDomainFeatureState for both instead?
It's something I planned to clean up, together with rng schemas. E.g.
<optional> <attribute name="dumpCore"> <choice> <value>on</value> <value>off</value> </choice> </attribute> </optional>
The principle is to define a common datatype and use it for all of the similar attributes, same principle for the enums in domain_conf.[ch].
But anyway, it's another story, and this patch is a right fix.
Oh, sorry, I forgot to ACK it.
ACK if you change the commit message so it doesn't imply that the test exposes the bug. Thanks, I pushed with the commit log updated.
Osier
participants (2)
-
Ján Tomko
-
Osier Yang