libvirt/tests
Daniel P. Berrangé 39015a6f3a tests: rewrite socket to do something sensible and reliable
The current socket test is rather crazy in that it sets up a server
listening for sockets and then runs a client connect call, relying on
the fact that the kernel will accept this despite the application
not having called accept() yet. It then closes the client socket and
calls accept() on the server. On Linux accept() will always see that
the client has gone and so skip the rest of the code. On FreeBSD,
however, the accept sometimes succeeds, causing us to then go into
code that attempts to read and write to the client which will fail
aborting the test. The accept() never succeeds on FreeBSD guests
with a single CPU, but as you add more CPUs, accept() becomes more and
more likely to succeed, giving a 100% failure rate for the test when
using 8 CPUs.

This completely rewrites the test so that it is avoids this designed in
race condition. We simply spawn a background thread to act as the
client, which will read a byte from the server and write it back again.
The main thread can now properly listen and accept the client in a
synchronous manner avoiding any races.

Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2018-09-04 13:22:06 +01:00
..
bhyveargv2xmldata
bhyvexml2argvdata
bhyvexml2xmloutdata
capabilityschemadata tests: Add RISC-V architectures 2018-08-24 13:23:36 +02:00
commanddata
cputestdata
domaincapsschemadata qemu: caps: Format SEV platform data into qemuCaps cache 2018-08-20 07:18:21 +02:00
domainconfdata
domainschemadata
domainsnapshotxml2xmlin
domainsnapshotxml2xmlout
fchostdata/fc_host
genericxml2xmlindata conf: Add support for memorytune XML processing for resctrl MBA 2018-08-13 14:19:41 -04:00
genericxml2xmloutdata
interfaceschemadata
libxlxml2domconfigdata
lxcconf2xmldata
lxcxml2xmldata
lxcxml2xmloutdata
networkxml2confdata
networkxml2firewalldata
networkxml2xmlin
networkxml2xmlout
networkxml2xmlupdatein
networkxml2xmlupdateout
nodedevschemadata
nssdata
nwfilterxml2firewalldata
nwfilterxml2xmlin
nwfilterxml2xmlout
qemuagentdata
qemuargv2xmldata qemu: fix default machine for argv -> xml convertor 2018-08-28 11:49:01 +01:00
qemublocktestdata/xml2json
qemucapabilitiesdata qemu: record the QEMU default machine in capabilities 2018-08-28 11:49:01 +01:00
qemucaps2xmldata
qemuhotplugtestcpus
qemuhotplugtestdevices
qemuhotplugtestdomains
qemumemlockdata
qemumigparamsdata Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
qemumonitorjsondata
qemustatusxml2xmldata qemu: domain: Add field for storing node name for copy-on-read 2018-08-21 15:46:06 +02:00
qemuxml2argvdata qemu: Validate memory access during validate domain config 2018-08-29 11:03:07 -04:00
qemuxml2startupxmloutdata
qemuxml2xmloutdata qemu: Introduce 16550A serial console model 2018-08-28 17:57:38 +02:00
secretxml2xmlin
securityselinuxhelperdata
securityselinuxlabeldata
sexpr2xmldata
storagepoolschemadata
storagepoolxml2xmlin
storagepoolxml2xmlout
storagevolschemadata
storagevolxml2argvdata
storagevolxml2xmlin
storagevolxml2xmlout
sysinfodata
vboxsnapshotxmldata
vircaps2xmldata tests: Drop core_siblings/thread_siblings files 2018-08-14 15:52:33 +02:00
vircgroupdata
virconfdata
virfilecachedata
virfiledata
virhostcpudata tests: Add linux-high-ids test 2018-08-14 15:52:35 +02:00
virjsondata
virmacmaptestdata Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
virnetdaemondata
virnetdevtestdata/sys/class/net
virnwfilterbindingxml2xmldata
virpcitestdata
virresctrldata conf: Add memory bandwidth allocation capability of host 2018-08-13 14:19:41 -04:00
virscsidata
virstorageutildata
virusbtestdata/sys_bus_usb/devices
vmwareverdata
vmx2xmldata
xlconfigdata
xmconfigdata
xml2sexprdata
xml2vmxdata
.valgrind.supp
bhyveargv2xmlmock.c
bhyveargv2xmltest.c
bhyvexml2argvmock.c
bhyvexml2argvtest.c
bhyvexml2xmltest.c
check-file-access.pl check-file-access: Allow specifying action 2018-08-15 10:15:29 +02:00
commandhelper.c
commandtest.c
cputest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
domaincapsmock.c
domaincapstest.c qemu: rename method for getting preferred machine type 2018-08-28 11:49:01 +01:00
domainconftest.c
domainsnapshotxml2xmltest.c
esxutilstest.c
eventtest.c
fchosttest.c
fdstreamtest.c
file_access_whitelist.txt check-file-access: Allow specifying action 2018-08-15 10:15:29 +02:00
genericxml2xmltest.c conf: Add support for memorytune XML processing for resctrl MBA 2018-08-13 14:19:41 -04:00
group-qemu-caps.pl
interfacexml2xmltest.c
libvirtd-fail
libvirtd-pool
libxlxml2domconfigtest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
lxcconf2xmltest.c
lxcxml2xmltest.c
Makefile.am vsh: Added tests 2018-08-24 10:53:59 +02:00
metadatatest.c
networkxml2conftest.c
networkxml2firewalltest.c
networkxml2xmltest.c
networkxml2xmlupdatetest.c
nodedevxml2xmltest.c
nsslinktest.c
nssmock.c
nsstest.c
nwfilterebiptablestest.c
nwfilterxml2firewalltest.c
nwfilterxml2xmltest.c
objecteventtest.c
objectlocking.ml
oomtrace.pl
openvzutilstest.c
openvzutilstest.conf
pkix_asn1_tab.c
qemuagenttest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
qemuargv2xmltest.c qemuargv2xmltest: Fix caps loading in VPATH build 2018-08-28 14:26:25 +02:00
qemublocktest.c tests: skip qemublocktest if building without YAJL 2018-09-04 12:00:14 +01:00
qemucapabilitiestest.c tests: Add RISC-V architectures 2018-08-24 13:23:36 +02:00
qemucaps2xmlmock.c
qemucaps2xmltest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
qemucapsfixreplies
qemucapsprobe.c
qemucapsprobemock.c Revert "tests: qemucapsprobe: Fix output after switching to jansson" 2018-08-13 15:50:00 +02:00
qemucommandutiltest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
qemucpumock.c
qemuhotplugtest.c qemu: hotplug: consolidate media change code paths 2018-08-21 15:46:06 +02:00
qemumemlocktest.c
qemumigparamstest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
qemumonitorjsontest.c tests: pass ULLONG_MAX to qemuMonitorJSONGetBalloonInfo 2018-09-04 10:19:23 +02:00
qemumonitortestutils.c
qemumonitortestutils.h
qemuxml2argvmock.c tests: qemuxml2argv: modernize TPM passthrough tests 2018-08-24 15:58:34 +02:00
qemuxml2argvtest.c qemu: Validate memory access during validate domain config 2018-08-29 11:03:07 -04:00
qemuxml2xmltest.c tests: Add RISC-V guest 2018-08-24 13:23:36 +02:00
scsihosttest.c
seclabeltest.c
secretxml2xmltest.c
securityselinuxhelper.c
securityselinuxlabeltest.c
securityselinuxtest.c
sexpr2xmltest.c
shunloadhelper.c
shunloadtest.c
sockettest.c
ssh.c
storagebackendsheepdogtest.c
storagepoolxml2xmltest.c
storagevolxml2argvtest.c
storagevolxml2xmltest.c
sysinfotest.c
test-lib.sh
test-wrap-argv.pl
testutils.c
testutils.h
testutilshostcpus.h
testutilslxc.c
testutilslxc.h
testutilsqemu.c tests: Properly reset mocked CPU model 2018-09-04 10:40:34 +02:00
testutilsqemu.h
testutilsqemuschema.c
testutilsqemuschema.h
testutilsxen.c
testutilsxen.h
utiltest.c
vboxsnapshotxmltest.c
viralloctest.c
viratomictest.c
virauthconfigtest.c
virbitmaptest.c
virbuftest.c
vircaps2xmltest.c
vircapstest.c tests: Add RISC-V architectures 2018-08-24 13:23:36 +02:00
vircgroupmock.c
vircgrouptest.c
virconftest.c
vircryptotest.c
virdbusmock.c
virdbustest.c
virdeterministichashmock.c
virdrivermoduletest.c
virendiantest.c
virfilecachemock.c
virfilecachetest.c
virfiletest.c
virfilewrapper.c
virfilewrapper.h
virfirewalltest.c
virhashdata.h
virhashtest.c
virhostcpumock.c
virhostcputest.c tests: Add linux-high-ids test 2018-08-14 15:52:35 +02:00
virhostdevtest.c
viridentitytest.c
viriscsitest.c
virjsontest.c Test parsing of large numbers in JSON 2018-09-04 10:19:23 +02:00
virkeycodetest.c
virkeyfiletest.c
virkmodtest.c
virlockspacetest.c
virlogtest.c
virmacmaptest.c Revert "m4: Introduce STABLE_ORDERING_JANSSON" 2018-08-13 15:50:00 +02:00
virmock.h
virmocklibxl.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
virnetdaemonmock.c
virnetdaemontest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
virnetdevbandwidthmock.c
virnetdevbandwidthtest.c
virnetdevmock.c
virnetdevtest.c
virnetmessagetest.c
virnetserverclientmock.c
virnetserverclienttest.c
virnetsockettest.c tests: rewrite socket to do something sensible and reliable 2018-09-04 13:22:06 +01:00
virnettlscontexttest.c
virnettlshelpers.c
virnettlshelpers.h
virnettlssessiontest.c
virnumamock.c
virnwfilterbindingxml2xmltest.c
virpcimock.c
virpcitest.c
virpolkittest.c
virportallocatormock.c
virportallocatortest.c
virrandommock.c
virresctrltest.c
virrotatingfiletest.c
virschematest.c
virscsitest.c
virsh-cpuset
virsh-define-dev-segfault
virsh-int-overflow
virsh-optparse
virsh-read-bufsiz
virsh-read-non-seekable
virsh-schedinfo
virsh-self-test
virsh-start
virsh-undefine
virsh-uriprecedence
virsh-vcpupin
virshtest.c virsh: Implement new table API for virsh list 2018-08-24 10:53:20 +02:00
virstoragetest.c Revert "Switch from yajl to Jansson" 2018-08-13 15:50:01 +02:00
virstorageutiltest.c
virstringtest.c
virsystemdtest.c
virt-aa-helper-test
virt-admin-self-test
virtestmock.c virtestmock: Track action 2018-08-15 10:16:16 +02:00
virtimetest.c
virtypedparamtest.c
viruritest.c
virusbmock.c
virusbtest.c
vmwarevertest.c
vmx2xmltest.c
vshtabletest.c tests: skip some unicode tests if expected output won't match 2018-09-04 11:26:03 +01:00
xlconfigtest.c
xmconfigtest.c
xml2sexprtest.c
xml2vmxtest.c