libvirt/tests
Eric Blake 31b5bad9ff event: make deregister return value match docs
Ever since their introduction (commit 1509b80 in v0.5.0 for
virConnectDomainEventRegister, commit 4445723 in v0.8.0 for
virConnectDomainEventDeregisterAny), the event deregistration
functions have been documented as returning 0 on success;
likewise for older registration (only the newer RegisterAny
must return a non-zero callbackID).  And now that we are
adding virConnectNetworkEventDeregisterAny for v1.2.1, it
should have the same semantics.

Fortunately, all of the stateful drivers have been obeying
the docs and returning 0, thanks to the way the remote_driver
tracks things (in fact, the RPC wire protocol is unable to
send a return value for DomainEventRegisterAny, at least not
without adding a new RPC number).  Well, except for vbox,
which was always failing deregistration, due to failure to
set the return value to anything besides its initial -1.

But for local drivers, such as test:///default, we've been
returning non-zero numbers; worse, the non-zero numbers have
differed over time.  For example, in Fedora 12 (libvirt 0.8.2),
calling Register twice would return 0 and 1 [the callbackID
generated under the hood]; while in Fedora 20 (libvirt 1.1.3),
it returns 1 and 2 [the number of callbacks registered for
that event type].  Since we have changed the behavior over
time, and since it differs by local vs. remote, we can safely
argue that no one could have been reasonably relying on any
particular behavior, so we might as well obey the docs, as well
as prepare callers that might deal with older clients to not be
surprised if the docs are not strictly followed.

For consistency, this patch fixes the code for all drivers,
even though it only makes an impact for vbox and for local
drivers.  By fixing all drivers, future copy and paste from
a remote driver to a local driver is less likely to
reintroduce the bug.

Finally, update the testsuite to gain some coverage of the
issue for local drivers, including the first test of old-style
domain event registration via function pointer instead of
event id.

* src/libvirt.c (virConnectDomainEventRegister)
(virConnectDomainEventDeregister)
(virConnectDomainEventDeregisterAny): Clarify docs.
* src/libxl/libxl_driver.c (libxlConnectDomainEventRegister)
(libxlConnectDomainEventDeregister)
(libxlConnectDomainEventDeregisterAny): Match documentation.
* src/lxc/lxc_driver.c (lxcConnectDomainEventRegister)
(lxcConnectDomainEventDeregister)
(lxcConnectDomainEventDeregisterAny): Likewise.
* src/test/test_driver.c (testConnectDomainEventRegister)
(testConnectDomainEventDeregister)
(testConnectDomainEventDeregisterAny)
(testConnectNetworkEventDeregisterAny): Likewise.
* src/uml/uml_driver.c (umlConnectDomainEventRegister)
(umlConnectDomainEventDeregister)
(umlConnectDomainEventDeregisterAny): Likewise.
* src/vbox/vbox_tmpl.c (vboxConnectDomainEventRegister)
(vboxConnectDomainEventDeregister)
(vboxConnectDomainEventDeregisterAny): Likewise.
* src/xen/xen_driver.c (xenUnifiedConnectDomainEventRegister)
(xenUnifiedConnectDomainEventDeregister)
(xenUnifiedConnectDomainEventDeregisterAny): Likewise.
* src/network/bridge_driver.c
(networkConnectNetworkEventDeregisterAny): Likewise.
* tests/objecteventtest.c (testDomainCreateXMLOld): New test.
(mymain): Run it.
(testDomainCreateXML): Check return values.

Signed-off-by: Eric Blake <eblake@redhat.com>
2014-01-07 06:53:40 -07:00
..
capabilityschemadata capabilities: add baselabel per sec driver/virt type to secmodel 2013-10-29 07:06:04 -06:00
commanddata build: clean up stray files found by 'make distcheck' 2013-05-06 14:01:08 -06:00
confdata
cputestdata cpu: Add cpu test cases for PPC CPU driver. 2013-09-05 12:31:10 +01:00
domainschemadata
domainsnapshotxml2xmlin domainsnapshotxml2xmltest: Add test case for empty driver element 2013-12-05 09:41:30 +01:00
domainsnapshotxml2xmlout domainsnapshotxml2xmltest: Add test case for empty driver element 2013-12-05 09:41:30 +01:00
fchostdata/fc_host tests: Add tests for fc_host 2013-05-13 17:24:18 +08:00
interfaceschemadata
lxcxml2xmldata Allow root directory in filesystem source dir schema 2013-11-07 18:43:15 +01:00
lxcxml2xmloutdata Allow root directory in filesystem source dir schema 2013-11-07 18:43:15 +01:00
networkxml2confdata Add forwarder attribute to <dns/> element 2013-09-17 17:47:33 -06:00
networkxml2xmlin Add forwarder attribute to <dns/> element 2013-09-17 17:47:33 -06:00
networkxml2xmlout Add forwarder attribute to <dns/> element 2013-09-17 17:47:33 -06:00
networkxml2xmlupdatein Test network update XML parsing 2013-08-28 08:05:46 +02:00
networkxml2xmlupdateout Test network update XML parsing 2013-08-28 08:05:46 +02:00
nodedevschemadata nodedev: add iommuGroup to node device object 2013-06-26 14:10:56 -04:00
nodeinfodata
nwfilterxml2xmlin
nwfilterxml2xmlout
qemucapabilitiesdata qemu: ask for -enable-fips when FIPS is required 2013-12-18 07:05:29 -07:00
qemuhelpdata qemu: Support setting the 'removable' flag for USB disks 2013-09-02 14:45:38 +02:00
qemuhotplugtestdata qemuhotplugtest: Add tests for virtio SCSI disk hotplug 2013-08-26 16:09:56 +02:00
qemumonitorjsondata qemu: Add monitor APIs to fetch CPUID data from QEMU 2013-11-08 09:44:36 +01:00
qemuxml2argvdata AArch64: Porting of armv7l conditons to run qemu for aarch64. 2014-01-06 11:02:24 -05:00
qemuxml2xmloutdata conf: don't format memtune with unlimited values 2013-12-10 09:11:26 +01:00
qemuxmlnsdata qemu: Set QEMU_AUDIO_DRV=none with -nographic 2013-09-02 16:53:39 -04:00
securityselinuxlabeldata selinux: enhance test to cover nfs label failure 2013-08-20 10:46:58 -06:00
sexpr2xmldata
storagepoolschemadata schema: require target path in storage pool xml 2013-05-17 08:33:22 +02:00
storagepoolxml2xmlin storage: document gluster pool 2013-11-25 11:03:19 -07:00
storagepoolxml2xmlout storage: document gluster pool 2013-11-25 11:03:19 -07:00
storagevolschemadata schema: make source optional in volume XML 2013-05-17 08:35:08 +02:00
storagevolxml2argvdata Always specify qcow2 compat level on qemu-img command line 2013-08-27 12:45:58 +02:00
storagevolxml2xmlin storage: improve directory support in gluster pool 2013-11-25 12:46:19 -07:00
storagevolxml2xmlout storage: improve directory support in gluster pool 2013-11-25 12:46:19 -07:00
sysinfodata aarch64: Fix sysinfo test. 2014-01-01 16:34:13 +00:00
virfiledata Fix bug in identifying sub-mounts 2013-11-28 11:49:01 +00:00
virpcitestdata virpcitest: Introduce testVirPCIDeviceReset 2013-11-06 09:34:17 +01:00
vmwareverdata VMware: Add Fusion version test 2013-09-30 16:58:37 -05:00
vmx2xmldata esx: Fix floppy.fileName handling in the vmx file parser 2013-10-15 11:39:02 +01:00
xencapsdata
xmconfigdata
xml2sexprdata
xml2vmxdata esx: Fix floppy.fileName handling in the vmx file parser 2013-10-15 11:39:02 +01:00
.valgrind.supp valgrind: Adjust filter for _dl_allocate_tls 2013-08-01 17:04:28 -04:00
capabilityschematest
commandhelper.c testutils: Resolve Coverity issues 2013-07-11 14:18:11 -04:00
commandtest.c Make virCommand env handling robust in setuid env 2013-10-21 14:03:52 +01:00
cpuset virBitmapParse: Fix behavior in case of error and fix up callers 2013-08-22 11:38:36 +02:00
cputest.c tests: guarantee abs_srcdir in all C tests 2013-11-27 14:39:56 -07:00
define-dev-segfault
domainschematest LXC: Fix handling of RAM filesystem size units 2013-10-09 17:44:45 +02:00
domainsnapshotschematest
domainsnapshotxml2xmltest.c domainsnapshotxml2xmltest: Add test case for empty driver element 2013-12-05 09:41:30 +01:00
esxutilstest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
eventtest.c Convert 'int i' to 'size_t i' in tests/ files 2013-07-10 17:40:13 +01:00
fchosttest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
fdstreamtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
int-overflow
interfaceschematest
interfacexml2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
jsontest.c Error out on unterminated arrays and objects in JSON parser 2013-11-20 12:35:44 +01:00
libvirtd-fail
libvirtd-pool
libvirtdconftest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
lxcxml2xmltest.c Allow root directory in filesystem source dir schema 2013-11-07 18:43:15 +01:00
Makefile.am Added domain start/stop/define/undefine event unit tests 2013-12-10 11:23:20 +00:00
metadatatest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
networkschematest
networkxml2conftest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
networkxml2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
networkxml2xmlupdatetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
nodedevschematest
nodedevxml2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
nodeinfotest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
nwfilterschematest
nwfilterxml2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
object-locking.ml Rename 'DeviceMonitor' to 'NodeDeviceDriver' 2013-04-24 10:59:53 +01:00
objecteventtest.c event: make deregister return value match docs 2014-01-07 06:53:40 -07:00
oomtrace.pl
openvzutilstest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
openvzutilstest.conf
pkix_asn1_tab.c
qemuagenttest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
qemuargv2xmltest.c virsh domxml-from-native to treat SCSI as the bus type for pseries by default 2013-11-25 10:44:46 -05:00
qemucapabilitiestest.c qemu: ask for -enable-fips when FIPS is required 2013-12-18 07:05:29 -07:00
qemuhelptest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
qemuhotplugtest.c Renamed virDomainEventState to virObjectEventState 2013-12-10 11:35:34 +00:00
qemumonitorjsontest.c qemumonitorjsontest: Introduce GetNonExistingCPUData test 2013-11-19 16:30:28 +01:00
qemumonitortest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
qemumonitortestutils.c Remove (nearly) all use of getuid()/getgid() 2013-10-21 14:03:52 +01:00
qemumonitortestutils.h tests: Learn qemuMonitorTestNew optional greeting 2013-10-01 10:48:47 +02:00
qemuxml2argvtest.c AArch64: Porting of armv7l conditons to run qemu for aarch64. 2014-01-06 11:02:24 -05:00
qemuxml2xmltest.c qemu: add support for -device pvpanic 2013-12-13 05:53:33 -07:00
qemuxmlnstest.c tests: guarantee abs_srcdir in all C tests 2013-11-27 14:39:56 -07:00
read-bufsiz
read-non-seekable
reconnect.c test: Refactor setting of dummy error handlers 2013-09-17 16:45:53 +02:00
schematestutils.sh tests: skip schema validation tests if xmllint is missing 2013-08-23 15:23:44 -06:00
seclabeltest.c
securityselinuxhelper.c tests: avoid compile failure on linux kernels older than 2.6.19 2013-10-07 08:40:30 -06:00
securityselinuxlabeltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
securityselinuxtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
sexpr2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
shunloadhelper.c shunloadtest: Resolve Coverity CHECKED_RETURN error 2013-05-21 09:22:21 -04:00
shunloadtest.c build: fix shunloadtest breakage 2013-07-29 13:09:39 -06:00
sockettest.c virsocket: Introduce virSocketAddrIsWildcard 2013-10-11 11:05:06 +02:00
ssh.c build: fix shunloadtest breakage 2013-07-29 13:09:39 -06:00
start
statstest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
storagebackendsheepdogtest.c Build breaker - requires VIR_FROM_THIS 2013-05-10 08:52:43 -04:00
storagepoolschematest schema: require target path in storage pool xml 2013-05-17 08:33:22 +02:00
storagepoolxml2xmltest.c storage: document gluster pool 2013-11-25 11:03:19 -07:00
storagevolschematest schema: make source optional in volume XML 2013-05-17 08:35:08 +02:00
storagevolxml2argvtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
storagevolxml2xmltest.c storage: improve directory support in gluster pool 2013-11-25 12:46:19 -07:00
sysinfotest.c tests: sysinfotest: Actual/expected were swapped in error message. 2014-01-01 16:34:13 +00:00
test_conf.c viralloc: Report OOM error on failure 2013-07-10 11:07:31 +02:00
test_conf.sh
test-lib.sh test-lib: Make case skipping possible 2013-09-13 10:25:56 +02:00
testutils.c tests: guarantee abs_srcdir in all C tests 2013-11-27 14:39:56 -07:00
testutils.h tests: guarantee abs_srcdir in all C tests 2013-11-27 14:39:56 -07:00
testutilslxc.c
testutilslxc.h
testutilsqemu.c AArch64: Porting of armv7l conditons to run qemu for aarch64. 2014-01-06 11:02:24 -05:00
testutilsqemu.h build: skip qemu in tests when !WITH_QEMU 2013-05-31 11:35:34 -06:00
testutilsxen.c
testutilsxen.h
utiltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
vcpupin
viratomictest.c maint: fix comma style issues: tests, tools 2013-11-20 09:14:55 -07:00
virauthconfigtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virbitmaptest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virbuftest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
vircgroupmock.c maint: fix comma style issues: tests, tools 2013-11-20 09:14:55 -07:00
vircgrouptest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virdbustest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virdrivermoduletest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virendiantest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virfiletest.c Fix bug in identifying sub-mounts 2013-11-28 11:49:01 +00:00
virhashdata.h
virhashtest.c maint: avoid 'const fooPtr' in hashes 2013-10-14 11:40:24 -06:00
viridentitytest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virkeycodetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virkeyfiletest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virlockspacetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virlogtest.c Fix flaw in detecting log format 2013-10-14 10:31:01 +01:00
virnetmessagetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virnetserverclientmock.c Add test case for virNetServerClient object identity code 2013-09-24 09:37:26 +01:00
virnetserverclienttest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virnetsockettest.c tests: fix syntax in previous patch 2014-01-01 09:58:27 -07:00
virnettlscontexttest.c virnettlscontexttest fails with GNUTLS 3.0.28 2013-12-23 13:16:07 -07:00
virnettlshelpers.c Fix parallel runs of TLS test suites 2013-08-09 11:54:41 +01:00
virnettlshelpers.h Fix parallel runs of TLS test suites 2013-08-09 11:54:41 +01:00
virnettlssessiontest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virpcimock.c tests: fix virpcitest with read-only srcdir 2013-11-27 15:06:15 -07:00
virpcitest.c virpcitest: Introduce testVirPCIDeviceReset 2013-11-06 09:34:17 +01:00
virportallocatortest.c Return -1 in virPortAllocatorAcquire if all ports are used 2013-11-18 12:28:07 +01:00
virsh-all tests: Skip virsh-all test as expensive 2013-08-12 18:47:56 +02:00
virsh-optparse
virsh-schedinfo
virsh-synopsis
virsh-undefine
virsh-uriprecedence tests: Don't test user config file if ran as root 2013-09-13 10:25:56 +02:00
virshtest.c virsh: allow alias to expand to opt=value pair 2013-10-24 11:17:41 +01:00
virstoragetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virstringtest.c Introduce standard methods for sorting strings with qsort 2013-11-28 11:29:46 +00:00
virsystemdmock.c Fix crash in virsystemdtest with dbus 1.7.6 2013-12-19 11:20:05 +00:00
virsystemdtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
virt-aa-helper-test
virtimetest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
viruritest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
vmwarevertest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
vmx2xmltest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
xencapstest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
xmconfigtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
xml2sexprtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00
xml2vmxtest.c Remove test case average timing 2013-10-08 12:39:30 +01:00